SQLでsysdateなどの日付型へ加算、減算してxx日後、xxヶ月後、xx年後を求める方法をメモしておきます。
xx秒後、xx秒前を求める方法
クエリー(SQL)例
- システム日付の30秒後と30秒前を取得する例です。
12345SELECTsysdate "本日の日付",sysdate + 30/86400 "本日の日付 + 30秒",sysdate - 30/86400 "本日の日付 - 30秒"FROM dual;
実行結果
xx分後、xx分前を求める方法
クエリー(SQL)例
- システム日付の5分後と5分前を取得する例です。
12345SELECTsysdate "本日の日付",sysdate + 5/1440 "本日の日付 + 5分",sysdate - 5/1440 "本日の日付 - 5分"FROM dual;
実行結果
xx時間後、xx時間前を求める方法
クエリー(SQL)例
- システム日付の2時間後と2時間前を取得する例です。
12345SELECTsysdate "本日の日付",sysdate + 2/24 "本日の日付 + 2時間",sysdate - 2/24 "本日の日付 - 2時間"FROM dual;
実行結果
xx日後、xx日前を求める方法
クエリー(SQL)例
- システム日付の1日後と1日前を取得する例です。
12345SELECTsysdate "本日の日付",TO_CHAR(sysdate + 1,'YYYY-MM-DD') "本日の日付 + 1日",TO_CHAR(sysdate - 1,'YYYY-MM-DD') "本日の日付 - 1日"FROM dual;
実行結果
xxヶ月後、xxヶ月前を求める方法
クエリー(SQL)例
- システム日付の1ヶ月後と1ヶ月前を取得する例です。ADD_MONTHS関数は1/31の1ヶ月後は2/28となるように上手く月末日を調整してくれます。
12345SELECTsysdate "本日の日付",TO_CHAR(ADD_MONTHS(sysdate, 1),'YYYY-MM-DD') "本日の日付 + 1ヶ月",TO_CHAR(ADD_MONTHS(sysdate, -1),'YYYY-MM-DD') "本日の日付 - 1ヶ月"FROM dual;
実行結果
xx年後、xx年前を求める方法
クエリー(SQL)例
- システム日付の1年後と1年前を取得する例です。ADD_MONTHS関数に12の倍数を指定することで年単位での加減算が可能となります。
12345SELECTsysdate "本日の日付",TO_CHAR(ADD_MONTHS(sysdate, 12),'YYYY-MM-DD') "本日の日付 + 1年",TO_CHAR(ADD_MONTHS(sysdate, -12),'YYYY-MM-DD') "本日の日付 - 1年"FROM dual;