[DB] 主要データベースの日付操作SQLまとめ:加算・減算のサンプル集

スポンサーリンク
DB

日付を操作する際、「1ヶ月後」や「10日前」など日数や月を加算・減算することがよくあります。今回は、主要なデータベースでのSQLのサンプルを紹介します。

BigQuery

BigQueryでは、DATE_ADDで日付を加算し、DATE_SUBで日付を減算します。

-- 10日を加算する
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 10 DAY);

-- 10日を減算する
SELECT DATE_SUB(CURRENT_DATE(), INTERVAL 10 DAY);

-- 1ヶ月を加算する
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH);

-- 1ヶ月を減算する
SELECT DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH);

Oracle

Oracleでは、日数は+演算子で加算・減算でき、月はADD_MONTHS関数で操作します。

-- 10日を加算する
SELECT SYSDATE + 10 FROM dual;

-- 10日を減算する
SELECT SYSDATE - 10 FROM dual;

-- 1ヶ月を加算する
SELECT ADD_MONTHS(SYSDATE, 1) FROM dual;

-- 1ヶ月を減算する
SELECT ADD_MONTHS(SYSDATE, -1) FROM dual;

SQL Server

SQL Serverでは、DATEADD関数で日付を加算・減算します。

-- 10日を加算する
SELECT DATEADD(DAY, 10, GETDATE());

-- 10日を減算する
SELECT DATEADD(DAY, -10, GETDATE());

-- 1ヶ月を加算する
SELECT DATEADD(MONTH, 1, GETDATE());

-- 1ヶ月を減算する
SELECT DATEADD(MONTH, -1, GETDATE());

PostgreSQL

PostgreSQLでは、+演算子やINTERVALを使って日数や月の加算・減算を行います。

-- 10日を加算する
SELECT CURRENT_DATE + INTERVAL '10 days';

-- 10日を減算する
SELECT CURRENT_DATE - INTERVAL '10 days';

-- 1ヶ月を加算する
SELECT CURRENT_DATE + INTERVAL '1 month';

-- 1ヶ月を減算する
SELECT CURRENT_DATE - INTERVAL '1 month';

MySQL

MySQLでは、DATE_ADDDATE_SUBを使って日付を加算・減算します。

-- 10日を加算する
SELECT DATE_ADD(CURDATE(), INTERVAL 10 DAY);

-- 10日を減算する
SELECT DATE_SUB(CURDATE(), INTERVAL 10 DAY);

-- 1ヶ月を加算する
SELECT DATE_ADD(CURDATE(), INTERVAL 1 MONTH);

-- 1ヶ月を減算する
SELECT DATE_SUB(CURDATE(), INTERVAL 1 MONTH);

SQLite

SQLiteでは、DATE関数と修飾子を使って日付を加算・減算します。

-- 10日を加算する
SELECT DATE('now', '+10 days');

-- 10日を減算する
SELECT DATE('now', '-10 days');

-- 1ヶ月を加算する
SELECT DATE('now', '+1 month');

-- 1ヶ月を減算する
SELECT DATE('now', '-1 month');

MariaDB

MariaDBでは、MySQLと同じ構文を使って日付の加算・減算が行えます。

-- 10日を加算する
SELECT DATE_ADD(CURDATE(), INTERVAL 10 DAY);

-- 10日を減算する
SELECT DATE_SUB(CURDATE(), INTERVAL 10 DAY);

-- 1ヶ月を加算する
SELECT DATE_ADD(CURDATE(), INTERVAL 1 MONTH);

-- 1ヶ月を減算する
SELECT DATE_SUB(CURDATE(), INTERVAL 1 MONTH);

DB2

DB2では、日数や月を加算・減算するために、+演算子と日付単位を使います。

-- 10日を加算する
SELECT CURRENT_DATE + 10 DAYS FROM sysibm.sysdummy1;

-- 10日を減算する
SELECT CURRENT_DATE - 10 DAYS FROM sysibm.sysdummy1;

-- 1ヶ月を加算する
SELECT CURRENT_DATE + 1 MONTH FROM sysibm.sysdummy1;

-- 1ヶ月を減算する
SELECT CURRENT_DATE - 1 MONTH FROM sysibm.sysdummy1;

Amazon Redshift

Amazon Redshiftでは、DATEADD関数を使用して日付を加算・減算します。

-- 10日を加算する
SELECT DATEADD(day, 10, current_date);

-- 10日を減算する
SELECT DATEADD(day, -10, current_date);

-- 1ヶ月を加算する
SELECT DATEADD(month, 1, current_date);

-- 1ヶ月を減算する
SELECT DATEADD(month, -1, current_date);

以上、 「主要データベースの日付操作SQLまとめ:加算・減算のサンプル集」 でした。

コメント

タイトルとURLをコピーしました