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
入力タイムスタンプを 1 年の初日で切り捨てます。
SELECT DATE_TRUNC('year', TIMESTAMP '20200430 04:05:06.789');
date_trunc 2020-01-01 00:00:00
入力タイムスタンプを 1 世紀の初日で切り捨てます。
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 関数が 'week' の日付部分を使用して、各週の月曜日の日付を返します。
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