ADD_MONTHSはnか月後又はnか月前の日付を返すSQL関数である。
DBMS | ADD_MONTHS |
---|---|
MySQL | ✗ |
Oracle | ✓ |
PostgreSQL | ✗ |
SQL Server | ✗ |
ADD_MONTHS(date, integer)
基準となる日時を指定する。
月数を指定する。integerが正の値ならdateの後、負の値ならdateの前の日付を戻す。
現在の日付と時刻はSYSDATEで取得できる。ADD_MONTHS関数と組み合わせることによって、1か月後の日付や1か月前の日付を取得できる。
SQL> SELECT SYSDATE AS 今日 FROM DUAL;
今日
--------
16-08-23
SQL> SELECT ADD_MONTHS(SYSDATE, 1) AS 来月 FROM DUAL;
来月
--------
16-09-23
SQL> SELECT ADD_MONTHS(SYSDATE, -1) AS 先月 FROM DUAL;
先月
--------
16-07-23
SQL>
来月末や先月末などを取得するには、LAST_DAY関数と組み合わせる。
SQL> SELECT SYSDATE AS 今日 FROM DUAL;
今日
--------
16-08-23
SQL> SELECT LAST_DAY(ADD_MONTHS(SYSDATE, 1)) AS 来月末 FROM DUAL;
来月末
--------
16-09-30
SQL> SELECT LAST_DAY(ADD_MONTHS(SYSDATE, -1)) AS 先月末 FROM DUAL;
先月末
--------
16-07-31
SQL>
来月1日や先月1日の日付を取得するには、TRUNC関数と組み合わせる。
SQL> SELECT SYSDATE AS 今日 FROM DUAL;
今日
--------
16-08-23
SQL> SELECT TRUNC(ADD_MONTHS(SYSDATE, 1), 'MM') AS 来月1日 FROM DUAL;
来月1日
--------
16-09-01
SQL> SELECT TRUNC(ADD_MONTHS(SYSDATE, -1), 'MM') AS 先月1日 FROM DUAL;
先月1日
--------
16-07-01
SQL>