【PostgreSQL】日付の切り捨て(date_trunc)の使い方

2021年8月8日PostgreSQL構文

構文

日付や時刻を指定のところ(精度といいます)で切り捨てるには、date_trunc関数を使います。

-- date_trunc(日付の切り捨て)の構文
date_trunc( 精度 , 日付・時刻 );

 

精度には'year'、'month'、'day'等を指定します。次のように実例を示すとわかりやすいです。

select cast('2021/2/14 01:23:45.678912' as timestamp); 
-- "2021-02-14 01:23:45.678912"を使って、date_truncを実行してみます

-- 1.年で切り捨て(精度に'year'を指定)
select date_trunc('year', cast('2021/2/14 01:23:45.678912' as timestamp));
-- "2021-01-01 00:00:00"


-- 2.月で切り捨て(精度に'month'を指定)
select date_trunc('month', cast('2021/2/14 01:23:45.678912' as timestamp));
-- "2021-02-01 00:00:00"


-- 3.日で切り捨て(精度に'day'を指定)
select date_trunc('day', cast('2021/2/14 01:23:45.678912' as timestamp));
-- "2021-02-14 00:00:00"


-- 4.時で切り捨て(精度に'hour'を指定)
select date_trunc('hour', cast('2021/2/14 01:23:45.678912' as timestamp));
-- "2021-02-14 01:00:00"


-- 5.分で切り捨て(精度に'minute'を指定)
select date_trunc('minute', cast('2021/2/14 01:23:45.678912' as timestamp));
-- "2021-02-14 01:23:00"


-- 6.秒で切り捨て(精度に'second'を指定)
select date_trunc('second', cast('2021/2/14 01:23:45.678912' as timestamp));
-- "2021-02-14 01:23:45"