我今天用到了select months_between(to_date('2006-05-17','YYYY-MM-DD'),to_date('2006-01-01',YYYY-MM-DD')) from dual;这个函数时。得出的结果是一个带有小数位的数。请问为什么不是按月来减的。它至底是怎么算的?哪位帮我解释一下。谢谢!!!

解决方案 »

  1.   

    当然是按月来减的啊,返回的有一定精度的月啊,根据你的需要和精度自己做取舍啊。用ROUND或TRUNC来取舍就可以。
      

  2.   

    SQL> SELECT MONTHS_BETWEEN(TO_DATE('2006-05-17', 'YYYY-MM-DD'),
      2                        TO_DATE('2006-01-01', 'YYYY-MM-DD')) from dual
      3  /MONTHS_BETWEEN(TO_DATE('2006-0
    ------------------------------
                  4.51612903225806是按月来减的呀~ 两个日期相差 4.516... 个月~