小弟新人,请问各位大侠,   比如 以月为单位的期限(当前日期 - 开始日期)  怎么写呀

解决方案 »

  1.   

    select months_between(sysdate,date'2010-10-2') from dual;select extract(month from (sysdate-date'2010-10-2') year to month) from dual;
      

  2.   

    先months_between,然后再根据自己需要ceil或者floor下.
      

  3.   

    ceil(months_between(当前日期,开始日期))
      

  4.   

    今天为2010-12-30:
    select months_between(sysdate,date'2010-10-2') from dual;
    select extract(month from (sysdate-date'2010-10-2') year to month) from dual;
    结果分别为: 2.91750821385902
                3
      

  5.   

    In Oracle/PLSQL, the extract function extracts a value from a date or interval value. The syntax for the extract function is: EXTRACT ( 
    { YEAR | MONTH | DAY | HOUR | MINUTE | SECOND } 
    | { TIMEZONE_HOUR | TIMEZONE_MINUTE } 
    | { TIMEZONE_REGION | TIMEZONE_ABBR } 
    FROM { date_value | interval_value } ) You can only extract YEAR, MONTH, and DAY from a DATE. You can only extract TIMEZONE_HOUR and TIMEZONE_MINUTE from a timestamp with a time zone datatype. 
    Applies To: Oracle 9i, Oracle 10g, Oracle 11g For example: extract(YEAR FROM DATE '2003-08-22') would return 2003 
    extract(MONTH FROM DATE '2003-08-22') would return 8 
    extract(DAY FROM DATE '2003-08-22') would return 22