本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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