DATE_TRUNC 函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DATE_TRUNC 函數

DATE_TRUNC 函數會根據您指定的日期部分 (例如小時、天或月) 來截斷時間戳記運算式或常值。

語法

DATE_TRUNC('datepart', timestamp)

引數

datepart

時間戳記值截斷目標的日期部分。輸入 timestamp 被截斷為輸入 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