OracleのDATE型演算

「過去60日以内に更新されていないレコードを抽出したい」みたいな場合は以下のようにやる。


SELECT ID, RENEW_DATE FROM TABLE
WHERE NVL(RENEW_DATE,TO_DATE('9999-12-31','YYYY-MM-DD')) < SYSDATE - 60;

まとめると以下のようになる。


SQL> SET HEAD OFF
SQL> SELECT SYSDATE, SYSDATE-1, SYSDATE-1/3600, SYSDATE-1/86400 FROM DUAL;

2007/08/23 18:30:00 2007/08/22 18:30:00 2007/08/23 17:30:00 2007/08/23 18:29:59