本帖最后由 lyshrine 于 2013-05-13 10:22:30 编辑

解决方案 »

  1.   


    declare
      v_month varchar2(6) :=&v_month;
      v_first_day varchar2(12);
    begin
      v_first_day:=to_date(v_month||'01','yyyy--mm-dd');
      dbms_output.put_line(v_first_day);
    end;剩下的建议楼主自己尝试下吧,这个其实都很简单的。
      

  2.   

    把sysdate换成to_date(' 201301'||'01','yyyymmdd') 就可以了
      

  3.   

    SQL> set serveroutput on
    SQL> declare v_date varchar2(20);
      2  begin
      3  v_date:=&1;
      4  dbms_output.put_line(to_date(v_date,'yyyy-mm'));
      5  dbms_output.put_line(last_day(to_date(v_date,'yyyy-mm')));
      6  dbms_output.put_line(add_months(to_date(v_date,'yyyy-mm'),-1));
      7  dbms_output.put_line(last_day(add_months(to_date(v_date,'yyyy-mm'),-1)));
      8  end;
      9  /
    输入 1 的值:  201301
    原值    3: v_date:=&1;
    新值    3: v_date:=201301;
    2013-01-01
    2013-01-31
    2012-12-01
    2012-12-31PL/SQL 过程已成功完成。