如题,date是‘2010-01-31’,如何写函数取得‘2009-12-31’,多谢!

解决方案 »

  1.   

    select last_day(to_date(to_char(sysdate,'yyyy')||'-12','yyyy-mm')) from dual;
      

  2.   

    select last_day(to_date(to_char(sysdate,'yyyy')-1||'-12','yyyy-mm')) from dual;
    LAST_DAY(TO_DATE(TO_CHAR(SYSDA
    2009-12-31
      

  3.   

    select last_day(to_date(to_char(sysdate,'yyyy')||'-12','yyyy-mm')) from dual;
      

  4.   

    select last_day(to_date(to_char(sysdate,'yyyy')-1||'-12','yyyy-mm')) from dual;
      

  5.   

    select  trunc(add_months(to_date('20100131,'YYYYMMDD'),12),'YYYY')-1 from dual;
      

  6.   

    SQL> select last_day(to_date(to_char(sysdate,'yyyy')||'-12','yyyy-mm')) from dual; 
    LAST_DAY(TO_DATE(TO_CHAR(SYSDA
    ------------------------------
    2010-12-31
      

  7.   

    select add_months(date'2010-01-31',-1) from dual;
      

  8.   


    SQL> select last_day(to_date(to_char(to_date('2010-01-31','yyyy-mm-dd'),'yyyy')-1||'-12','yyyy-mm'))
     from dual;LAST_DAY(TO_DA
    --------------
    31-12月-09
      

  9.   


    select add_months(trunc(sysdate, 'year'), 12) - 1 from dual;
      

  10.   


     select to_date('2010-01-01','yyyy-mm-dd')-1 "date" from dual;
      

  11.   

    select add_months(to_date('2010-01-31','yyyy-mm-dd'),-1) "date" from dual;    date
    ------------------
       2009-12-31