--感觉ORACLE对日期的处理比MS较方便些 --修改会话日期时间格式 ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; --修改会话日期时间语言 ALTER SESSION SET NLS_DATE_LANGUAGE = 'AMERICAN'; --当前时间前N分钟 SELECT SYSDATE-INTERVAL 'N' MINUTE FROM DUAL; --当前时间前N小时 SELECT SYSDATE-INTERVAL 'N' HOUR FROM DUAL; --N天前的这时 SELECT SYSDATE-INTERVAL 'N' DAY FROM DUAL; --N月前的这时 SELECT SYSDATE-INTERVAL 'N' MONTH FROM DUAL; SELECT ADD_MONTHS(SYSDATE,-N) FROM DUAL; --N年前的这时 SELECT SYSDATE-INTERVAL 'N' YEAR FROM DUAL; --本月最后一天 SELECT LAST_DAY(SYSDATE) FROM DUAL; --日期间的相差月数 SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE('2010-01-12','YYYY-MM-DD'))FROM DUAL;
?其实再加上字符串和日期转换函数TO_CHAR和TO_DATE基本的计算已经差不多了。