DATE_TRUNC 函数
DATE_TRUNC 函数根据您指定的日期部分(如小时、天或月)截断时间戳表达式或文字。
语法
DATE_TRUNC('datepart', timestamp)
参数
- datepart
-
截断时间戳值的日期部分。输入时间戳被截断为输入 datepart 的精度。例如,
month
截断至每月的第一天。有效格式如下所示:microsecond、microseconds
millisecond、milliseconds
second、seconds
minute、minutes
hour、hours
day、days
week、weeks
month、months
quarter、quarters
year、years
decade、decades
century、centuries
millennium、millennia
有关某些格式的缩写的更多信息,请参阅日期或时间戳函数的日期部分
- timestamp
-
时间戳列或隐式转换为时间戳的表达式。
返回类型
TIMESTAMP
示例
将输入时间戳截断至秒。
SELECT DATE_TRUNC('second', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-30 04:05:06
将输入时间戳截断至分钟。
SELECT DATE_TRUNC('minute', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-30 04:05:00
将输入时间戳截断至小时。
SELECT DATE_TRUNC('hour', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-30 04:00:00
将输入时间戳截断至天。
SELECT DATE_TRUNC('day', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-30 00:00:00
将输入时间戳截断至一个月的第一天。
SELECT DATE_TRUNC('month', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-01 00:00:00
将输入时间戳截断至一个季度的第一天。
SELECT DATE_TRUNC('quarter', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-04-01 00:00:00
将输入时间戳截断至一年的第一天。
SELECT DATE_TRUNC('year', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-01-01 00:00:00
将输入时间戳截断至一个世纪的第一天。
SELECT DATE_TRUNC('millennium', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2001-01-01 00:00:00
将输入时间戳截断至某周的星期一。
select date_trunc('week', TIMESTAMP '20220430 04:05:06.789');
date_trunc 2022-04-25 00:00:00
在以下示例中,DATE_TRUNC 函数使用“周”日期部分返回每周星期一的日期。
select date_trunc('week', saletime), sum(pricepaid) from sales where saletime like '2008-09%' group by date_trunc('week', saletime) order by 1;
date_trunc | sum ------------+------------- 2008-09-01 | 2474899 2008-09-08 | 2412354 2008-09-15 | 2364707 2008-09-22 | 2359351 2008-09-29 | 705249