to_date('2003'||'10'||'10','yyyymmdd')

解决方案 »

  1.   

    to_date('字符串','格式字符串')
      

  2.   

    就是想做下面的东西,搞定已经create or replace procedure GetLastMothPeriod(
              P_YEAR VARCHAR2, 
              P_MONTH VARCHAR2, 
              P_LASTMONTH_DTBEGIN out DATE, 
              P_LASTMONTH_DTEND out DATE) 
    --------------------------------------------------
    /*
    *求某年某月的上个月的第一天与最后一天。
    */
    --------------------------------------------------
    is
      StrDate varchar2(20) ;
      temp_year varchar2(4) ;
      temp_month varchar2(2) ;
      temp_date varchar2(20) ;
    begin
      NULL;
      if P_MONTH=1 then
         temp_year :=TO_CHAR(TO_NUMBER(trim(P_YEAR))-1) ;
         temp_month := 12 ;
      else
        temp_year := trim(P_YEAR) ;
        temp_month := P_MONTH -1  ;
      end if ;
      
      --上月第一天=上月年分+上月月分   
      P_LASTMONTH_DTBEGIN := TO_DATE(temp_year||'-'||temp_month||'-01','YYYY-MM-DD') ;
      
      --上月最后一天=本月第一天-1
      P_LASTMONTH_DTEND := TO_DATE(p_year||'-'||p_month ||'-01','YYYY-MM-DD') -1 ;
         end GetLastMothPeriod;