日付の加算/減算
NUMBER値を加算(減算)しての日付計算。-- 現在日時の1日後 select sysdate + 1 from dual; -- 2013/05/11の1日前 select to_date('2013-05-11') - 1 from dual; -- 閏年も問題なし(3/1になります) select to_date('2012-02-28') + 2 from dual;
期間値(INTERVAL)を使って日付の加算(減算)を行うこともできます。
-- 現在日時の1日後 select sysdate + to_dsinterval('P1D') from dual select sysdate + interval '1' day from dual;
月の加算/減算
期間値(INTERVAL)を使って計算します。-- 1ヶ月後を計算 select to_date('2012-02-28') + interval '1' month from dual;
このようにINTERVALを使うと、日付の計算を非常に簡単に行うことができます。
INTERVALのリテラル定義の方法は、以下のOracleのドキュメントを見ると良いでしょう。
http://docs.oracle.com/cd/E16338_01/server.112/b56299/sql_elements003.htm#i38598