PostgreSQL は日時計算が得意だ!日付の加減算を手軽にやる

PostgreSQL は日付の計算に使える便利な演算子・関数を沢山持っている。

たとえば、「現在日付の1ヶ月後」みたいな計算が以下のように直感的に書ける。

-- これで1ヶ月後が求められる
SELECT current_timestamp + interval '1 month';

-- 2ヶ月などは複数形で。2ヶ月前。
SELECT current_timestamp - interval '2 months';

day とか years とかも書ける。

そういえば Oracle みたいに FROM DUAL とか書かずに SELECT 文だけで叩けるのが PostgresSQL の面白いところ。

date_trunc() 関数を使うと指定の精度で日付を切り捨てられるので、「現在日付からみた今週末の日付」なんかを取得できる。

SELECT DATE_TRUNC('week', current_timestamp + '1 week') + '-1 day';

うーん便利!