select months_between(日期一,日期二) from dual;
如果日期一比日期二晚,则返回负值
该返回值有小数,如果楼主不要小数,则可以再做相关处理
如:
select months_between(sysdate,to_date('01-01-2003','dd-mm-yyyy')) from dual;
如果日期一比日期二晚,则返回负值
该返回值有小数,如果楼主不要小数,则可以再做相关处理
如:
select months_between(sysdate,to_date('01-01-2003','dd-mm-yyyy')) from dual;
SELECT MONTHS_BETWEEN
(TO_DATE(’02-02-1995’,’MM-DD-YYYY’),
TO_DATE(’01-01-1995’,’MM-DD-YYYY’) ) "Months"
FROM DUAL;Months
----------
1.03225806
SQL> select months_between(to_date('22-10-2003','dd-mm-yyyy'),
2 to_date('01-10-2003','dd-mm-yyyy')) "1STdate",
3 months_between(to_date('01-01-2003','dd-mm-yyyy'),
4 to_date('22-10-2003','dd-mm-yyyy')) "2NDdate"
5 from dual; 1STdate 2NDdate
---------- ----------
.677419355 -9.6774194$:"date1-date2"
select abs(to_char(date1,'mm')-to_char(date1,'mm')) from dual;
就可以了。字符型与数值型打出来都一样。
add_month(d,n)当前日期d后退n个月
next_day(d,day)d后第一周制定day的日期,找一本参考书吧