那位大侠知道,有没有直接求两个日期相差的月份数的函数,如果没有,在oralce中如何实现

解决方案 »

  1.   

    MONTHS_BETWEEN (x, y)用于计算x和y之间有几个月。如果x在日历中比y早,那么MONTHS_BETWEEN()就返回一个负数。
    SQL> SELECT months_between(SYSDATE, to_date('2010-01-01', 'yyyy-mm-dd')) FROM dual;
     
    MONTHS_BETWEEN(SYSDATE,TO_DATE
    ------------------------------
                  4.32345878136201
     
    SQL> 
      

  2.   

    楼上正解,或者使用 
    select 
    To_char(SYSDATE,'yyyyMM')-To_char(add_months(SYSDATE,2),'yyyymm' )
    from dual;
      

  3.   

    SQL> select months_between(sysdate,to_date('201003','yyyymm')) from dual;MONTHS_BETWEEN(SYSDATE,TO_DATE
    ------------------------------
                  2.33916741338112SQL> select floor(months_between(sysdate,to_date('201003','yyyymm'))) from dual;FLOOR(MONTHS_BETWEEN(SYSDATE,T
    ------------------------------
                                 2SQL> select ceil(months_between(sysdate,to_date('201003','yyyymm'))) from dual;CEIL(MONTHS_BETWEEN(SYSDATE,TO
    ------------------------------
                                 3SQL>