首页 > 数据库技术 > 详细

ORACLE中函数MONTHS_BETWEEN的使用

时间:2015-10-10 10:25:22      阅读:812      评论:0      收藏:0      [点我收藏+]
格式:MONTHS_BETWEEN(DATE1,DATE2)

MONTHS_BETWEEN函数返回两个日期之间的月份数。
SQL> select months_between(to_date(20090228, yyyymmdd), to_date(20080228, yyyymmdd)) as months from dual;

    MONTHS
----------
        12

SQL> select months_between(to_date(20090228, yyyymmdd), to_date(20080229, yyyymmdd)) as months from dual;

    MONTHS
----------
        12

SQL> select months_between(to_date(20080229, yyyymmdd), to_date(20070228, yyyymmdd)) as months from dual;

    MONTHS
----------
        12

SQL> select months_between(to_date(20100331, yyyymmdd), to_date(20100228, yyyymmdd)) as months from dual;

    MONTHS
----------
         1

SQL> select months_between(to_date(20100228, yyyymmdd), to_date(20100128, yyyymmdd)) as months from dual;

    MONTHS
----------
         1

SQL> select months_between(to_date(20100327, yyyymmdd), to_date(20100228, yyyymmdd)) as months from dual;

    MONTHS
----------
.967741935

SQL> select months_between(to_date(20100330, yyyymmdd), to_date(20100228, yyyymmdd)) as months from dual;

    MONTHS
----------
1.06451613

SQL> select months_between(to_date(20100228, yyyymmdd), to_date(20100130, yyyymmdd)) as months from dual;

    MONTHS
----------
.935483871

SQL> select months_between(to_date(20100228, yyyymmdd), to_date(20100131, yyyymmdd)) as months from dual;

    MONTHS
----------
         1

SQL> select months_between(to_date(20100228, yyyymmdd), to_date(20100127, yyyymmdd)) as months from dual;

    MONTHS
----------
1.03225806

30/31=0.96774193548387096774193548387097
33/31=1.0645161290322580645161290322581
29/31=0.93548387096774193548387096774194
32/31=1.032258064516129032258064516129
在ORACLE中计算月份的差值,都是月底或是日期相同,都会按整月计算。
如果计算结果不是整数,ORACLE会把31作为分母来计算。

 

ORACLE中函数MONTHS_BETWEEN的使用

原文:http://www.cnblogs.com/rwh871212/p/4865876.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!