Oracleでは、ADD_MONTHSを使って日付に月を加算する事ができます。注意点として、2009/09/30のように月末の日付に月を加算すると、その月の月末を計算します。例えば、2009/09/30に1月加算すると、2009/10/31となります。また、2010/01/31に1月加算すると、2010/02/28となります。
文法:
ADD_MONTHS(date, n)
dateに指定した日付にnヶ月を加算する。
使用例:今日の日付の3ヶ月後の日付を取得する。
SELECT sysdate, ADD_MONTHS(sysdate, 3) FROM DUAL;
sysdate ADD_MONTHS(sysdate, 3)
—————————————————————————
09-09-24 09-10-24
使用例:今日の日付の3カ月前の日付を取得する。
SELECT sysdate, ADD_MONTHS(sysdate, -3) FROM DUAL;
sysdate ADD_MONTHS(sysdate, -3)
—————————————————————————
09-09-24 09-06-24
使用例:2009/09/30に1月加算する。
SELECT ADD_MONTHS(‘2009/09/30’, 1) FROM DUAL;
ADD_MONTHS(‘2009/09/30’, 1)
———————————————-
2009/10/31