カテゴリー
コンピューター

【PostgreSQL】date 型を足し引きするポイント

PostgreSQL で date 型の四則演算ポイント

  • ORACLE と異なり、ADD_MONTH や LASTDAY 関数がない。
  • interval 型があるのでこれを利用する。
  • 一旦文字列型にして必要な部分を切り出して、、、という操作はしないようにする。出来上がった SQL を見た時、意図が伝わらないため。

日付を足し引きする PostgreSQL 例

PostgreSQL9.5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- 指定日の n 日後
SELECT CAST('20170330' AS date) + make_interval(days => 1);
SELECT CAST('20170330' AS date) + interval '1 day';
SELECT CAST('20170330' AS date) + 1;
 
-- 指定日の月初日
SELECT date_trunk('month', CAST('20170330' AS date));
 
-- 指定日の翌月の月初日
SELECT date_trunk('month', CAST('20170330' AS date)) + interval '1 month';
 
-- 指定日の月末の最終秒
SELECT date_trunk('month', CAST('20170330' AS date)) + interval '1 month' - interval '1 second';
 
-- 指定日から n ヶ月前の日
SELECT CAST('20170330' AS date) + make_interval(month => 3);

おわりに

次の公式ページが参考になりました。ありがとう存じます!

以上です。

コメントを残す