PostgreSQLの日付操作
前回
Oracleの日付操作 - 鶏頭のプログラム
の記事でOracleの日付操作について記載しました。
今回はPostgreSQLの日付操作について記載します。
今
SELECT current_timestamp; SELECT now();
今日
SELECT current_date;
明日
SELECT current_timestamp + '1 day'; SELECT now() + '1 day'; SELECT current_date + 1;
昨日
SELECT current_timestamp + '-1 day'; SELECT now() + '-1 day'; SELECT current_date - 1;
ひと月後
SELECT current_timestamp + '1 month'; SELECT now() + '1 month';
ひと月前
SELECT current_timestamp + '-1 month'; SELECT now() + '-1 month';
一年後
SELECT current_timestamp + '1 year'; SELECT now() + '1 year';
一年前
SELECT current_timestamp + '-1 year'; SELECT now() + '-1 year';
週始まり
SELECT DATE_TRUNC('week', current_timestamp); SELECT DATE_TRUNC('week', now());
週終わり
SELECT DATE_TRUNC('week', current_timestamp + '1 week') + '-1 day'; SELECT DATE_TRUNC('week', now() + '1 week') + '-1 day'; SELECT DATE_TRUNC('week', current_timestamp + '1 week') + '-1 second'; SELECT DATE_TRUNC('week', now() + '1 week') + '-1 second';
月初
SELECT DATE_TRUNC('month', current_timestamp); SELECT DATE_TRUNC('month', now());
月末(来月月初の一日前)
SELECT DATE_TRUNC('month', current_timestamp + '1 month') + '-1 day'; SELECT DATE_TRUNC('month', now() + '1 month') + '-1 day'; SELECT DATE_TRUNC('month', current_timestamp + '1 month') + '-1 second'; SELECT DATE_TRUNC('month', now() + '1 month') + '-1 second';
こんな感じでしょうか。