【PostgreSQL】日付の加算、週の加算、月の加算

2020年7月11日

スポンサーリンク

構文

--日付の加算、週の加算、月の加算
日付 + cast( '5 days' as INTERVAL )       -- 5日加える
日付 + cast( '5 weeks' as INTERVAL )      -- 5週加える
日付 + cast( '5 months' as INTERVAL )     -- 5か月加える

--時間の加算、分の加算、秒の加算
日付 + cast( '5 hours' as INTERVAL )      -- 5時間加える
日付 + cast( '5 minutes' as INTERVAL )    -- 5分加える
日付 + cast( '5 seconds' as INTERVAL )    -- 5秒加える

※↑日付はDate型、Timestamp型どちらでもOK

 

 

使用例

加算例を示します。(ここ例はそのままコピー&貼り付けで実行できます)

 

・日付の加算例

--1.現在時刻に5日加える
select now() + cast('5 days' as INTERVAL);
--【結果】:2020-07-16 08:00:00.000000+09


--2.『2020/1/1』に5日加える
select cast('2020/1/1' as date) + cast('5 days' as INTERVAL); 
--【結果】:2019-01-06 00:00:00


--3.『2020/1/1 9:00:00』に5日加える
select cast('20200101 09:00:00' as timestamp) + cast('5 days' as INTERVAL); 
--【結果】:2020-01-06 09:00:00

 

・週の加算例

--1.現在時刻に5週加える
select now() + cast('5 weeks' as INTERVAL);
--【結果】:2020-08-15 08:00:00.000000+09


--2.『2020/1/1』に5週加える
select cast('2020/1/1' as date) + cast('5 weeks' as INTERVAL); 
--【結果】:2019-02-05 00:00:00


--3.『2020/1/1 9:00:00』に5週加える
select cast('20200101 09:00:00' as timestamp) + cast('5 weeks' as INTERVAL); 
--【結果】:2020-02-05 09:00:00

 

・月の加算例

--1.現在時刻に5ヶ月加える
select now() + cast('5 months' as INTERVAL);
--【結果】:2020-12-11 08:00:00.000000+09


--2.『2020/1/1』に5ヶ月加える
select cast('2020/1/1' as date) + cast('5 months' as INTERVAL); 
--【結果】:2019-06-01 00:00:00


--3.『2020/1/1 9:00:00』に5ヶ月加える
select cast('20200101 09:00:00' as timestamp) + cast('5 months' as INTERVAL); 
--【結果】:2020-06-01 09:00:00

 

・時間の加算例

--1.現在時刻に5時間加える
select now() + cast('5 hours' as INTERVAL);
--【結果】:2020-07-11 13:00:00.000000+09


--2.『2020/1/1』に5時間加える
select cast('2020/1/1' as date) + cast('5 hours' as INTERVAL); 
--【結果】:2020-01-01 05:00:00


--3.『2020/1/1 9:00:00』に5時間加える
select cast('20200101 09:00:00' as timestamp) + cast('5 hours' as INTERVAL); 
--【結果】:2020-01-01 14:00:00

 

・分の加算例

--1.現在時刻に5分加える
select now() + cast('5 minutes' as INTERVAL);
--【結果】:2020-07-11 13:00:00.000000+09


--2.『2020/1/1』に5分加える
select cast('2020/1/1' as date) + cast('5 minutes' as INTERVAL); 
--【結果】:2020-01-01 00:05:00


--3.『2020/1/1 9:00:00』に5分加える
select cast('20200101 09:00:00' as timestamp) + cast('5 minutes' as INTERVAL); 
--【結果】:2020-01-01 09:05:00

 

・秒の加算例

--1.現在時刻に5秒加える
select now() + cast('5 seconds' as INTERVAL);
--【結果】:2020-07-11 08:00:05.000000+09


--2.『2020/1/1』に5秒加える
select cast('2020/1/1' as date) + cast('5 seconds' as INTERVAL); 
--【結果】:2020-01-01 00:00:05


--3.『2020/1/1 9:00:00』に5秒加える
select cast('20200101 09:00:00' as timestamp) + cast('5 seconds' as INTERVAL); 
--【結果】:2020-01-01 09:00:05