select months_between(sysdate,to_date('20071222','YYYYMMDD')) from dual; 结果为-2; select months_between(sysdate,to_date('20071221','YYYYMMDD')) from dual; 结果为-1.94395870669056;
select to_number(to_char(待比较的日期型数据1,'dd'))/31+to_number(to_char(待比较的日期型数据2,'mm')) 月份差 from 表明 这里我把一个月当作31天来计算了希望对楼主有所帮助
结果为-2;
select months_between(sysdate,to_date('20071221','YYYYMMDD')) from dual;
结果为-1.94395870669056;
这里我把一个月当作31天来计算了希望对楼主有所帮助
select (to_number(to_char(待比较的日期型数据1, 'dd '))-to_number(to_char(待比较的日期型数据2, 'dd')) )/31+(to_number(to_char(待比较的日期型数据1, 'mm'))-to_number(to_char(待比较的日期型数据2, 'mm')) ) 月份差 from 表名
select mod(abs(months_between(to_date('20081012','yyyymmdd'),to_date('20071011','yyyymmdd'))),12) from dual;
MOD(ABS(MONTHS_BETWEEN(TO_DATE
------------------------------
0.032258064516129