您的位置:首页 > 数据库 > Oracle

Oracle MONTHS_BETWEEN

2017-05-19 11:49 148 查看


MONTHS_BETWEEN函数会返回日期类型的date1和date2之间的相差的月份。

(1)如果date1晚于date2,返回的结果就是正数。

SELECT MONTHS_BETWEEN(TO_DATE('2017-05-19', 'YYYY-MM-DD'),
TO_DATE('2017-03-23', 'YYYY-MM-DD')) MONTHS
FROM DUAL;


1.87096774193548


(2)如果date1早于date2,那么返回的就是一个负数。

SELECT MONTHS_BETWEEN(TO_DATE('2017-03-23', 'YYYY-MM-DD'),
TO_DATE('2017-05-19', 'YYYY-MM-DD')) MONTHS
FROM DUAL;


-1.87096774193548


(3)如果date1和date2要么是月里的同日或者月的最后一日,返回的结果总是一个整数。

SELECT MONTHS_BETWEEN(TO_DATE('2017-05-19', 'YYYY-MM-DD'),
TO_DATE('2017-03-19', 'YYYY-MM-DD')) MONTHS
FROM DUAL;


2


(4)否则Oracle会在每月31天的基础上计算出一个带有小数部分的结果,并且会考虑到date1和date2的组成部分。

SELECT MONTHS_BETWEEN(TO_DATE('2017-05-18', 'YYYY-MM-DD'),
TO_DATE('2017-03-19', 'YYYY-MM-DD')) MONTHS
FROM DUAL;


1.96774193548387
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 函数