日付を操作する際、「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_ADD
とDATE_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まとめ:加算・減算のサンプル集」 でした。
コメント