如何将Timestamp时间转换为整点时刻?
如何将Timestamp转换为整点时刻
直接获取整点Timestamp(推荐)
用date_trunc函数可以直接截断时间到小时级别,返回原生Timestamp类型,完全匹配你的需求:
SELECT date_trunc('hour', data_timestamp) AS date_timestamp;
比如输入2022-05-03 11:14:59.000,输出就是2022-05-03 11:00:00.000。
转成指定格式的字符串
如果需要输出字符串格式的整点时间,直接用to_char固定分秒部分即可:
SELECT to_char(data_timestamp, 'YYYY-MM-DD HH24:00:00.000') AS date_timestamp;
你之前方法出错的原因
- 第一种方法:
extract(hour)返回的是数值(比如11),拼接:00后变成字符串11:00,再传给to_char时,to_char无法把普通字符串按照时间格式解析,所以报错。 - 第二种方法:
extract(hour)只提取了小时数值,没有分钟信息,用HH24:MI格式时,MI没有对应的数据,所以只会显示HH24对应的小时部分,导致结果变成HH24:。
内容的提问来源于stack exchange,提问作者leftielady
相关产品推荐
相关产品推荐

