鶏頭のプログラム

Ruby, Javascript, C言語, SQLなどのプログラミング

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';

こんな感じでしょうか。