SQL> Select trunc(Months_Between ( To_Date('2002-10','YYYY-MM'), To_Date('2002-8-16','YYYY-MM-DD') )) Months FROM DUAL;MONTHS
----------
1

解决方案 »

  1.   

    使用trunc()
    或round()函数
      

  2.   

    SQL> Select round(Months_Between(To_Date('2002-10','yyyy-mm'), To_Date('2002-8-16','yyyy-mm-dd')),1) 
    Months From dual;   MONTHS
    ---------
          1.5SQL> Select round(Months_Between(To_Date('2002-10','yyyy-mm'),To_Date('2002-8-16','yyyy-mm-dd')),0) 
    Months From dual;   MONTHS
    ---------
          2
      

  3.   

    round()可以四舍五入, trunc() 则直接取出。
    SQL> select round(Months_Between ( To_Date('2002-10','YYYY-MM'), To_Date('2002-8-16','YYYY-MM-DD') ),1) Months FROM DUAL
      2  ;
        MONTHS
    ----------
           1.5
    SQL> select trunc(Months_Between ( To_Date('2002-10','YYYY-MM'), To_Date('2002-8-16','YYYY-MM-DD') ),1) Months FROM DUAL;
        MONTHS
    ----------
           1.5