我靠 半天没人理 找的好辛苦,自己答出来 
add_months()月的运算 1季用3月 …… 谁先来给谁分

解决方案 »

  1.   

    前一个月的什么日期?有几个函数你可以参考:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    SELECT MONTHS_BETWEEN 
       (TO_DATE('02-02-1995','MM-DD-YYYY'),
        TO_DATE('01-01-1995','MM-DD-YYYY') ) "Months"
        FROM DUAL;    Months
    ----------
    1.03225806~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    SELECT SYSDATE,
       LAST_DAY(SYSDATE) "Last",
       LAST_DAY(SYSDATE) - SYSDATE "Days Left"
       FROM DUAL;
     
    SYSDATE   Last       Days Left
    --------- --------- ----------
    30-MAY-01 31-MAY-01          1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    SELECT TO_CHAR(
         ADD_MONTHS(hire_date,1),
         'DD-MON-YYYY') "Next month"
         FROM employees 
         WHERE last_name = 'Baer';Next Month
    -----------
    07-JUL-1994~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    SELECT NEXT_DAY('02-FEB-2001','TUESDAY') "NEXT DAY"
         FROM DUAL;NEXT DAY
    -----------
    06-FEB-2001
      

  2.   

    时间可以直接加减
    select sysdate-30 from dual;