DATE_TRUNC 函数 - Amazon Redshift

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