用法:
date_trunc()返回结果是timestamp类型
示例1:
date_trunc(‘day’, now() + interval ‘-2 day’)
分解:
now(): 获取当前时间。
interval ‘-2 day’: 从当前时间中减去 2 天。
date_trunc(‘day’, …): 截断指定时间为指定日期单位的开始。
结果:
该查询的结果是一个timestamp类型的时间,表示当前时间减去 2 天,且时分秒为 00:00:00。
示例2:
如果当前时间是 2023-03-08 13:37:42,则查询 date_trunc(‘day’, now()) 将返回 2023-03-08 00:00:00。
示例3:
将now()全替换成参数传入的一个时间字符串
date_trunc(‘day’, to_timestamp(#{time}, ‘yyyy-MM-dd 00:00:00’) + interval ‘-2 day’)
如传入字符串 ‘2024-04-20 00:00:00’
在 PostgreSQL 中,可以使用 TO_TIMESTAMP() 函数将字符串时间转换为时间戳:
SELECT date_trunc(‘day’, TO_TIMESTAMP(‘2024-04-20 00:00:00’,yyyy-MM-dd 00:00:00’) + interval ‘-2 day’);
分解:
TO_TIMESTAMP(‘2024-04-20 00:00:00’,yyyy-MM-dd 00:00:00’) : 将字符串时间转换为时间戳。
用途:
此查询可用于获取日期的开始时间,例如用于:
计算日期范围
按日期分组
比较日期