declare
 d1 date:=sysdate;
 d2 date;
begin
 select to_char(d1,'YYYY-MM') into d2 from dual;
end;
-------------
这样怎么是错误的呢??
谢谢回复!!!希望大家批评!

解决方案 »

  1.   

    DECLARE
       d1   DATE := SYSDATE;
       d2   varchar(10);
    BEGIN
       SELECT TO_CHAR (d1, 'YYYY-MM')
         INTO d2
         FROM DUAL;
    END;因为你不能把一个字符串赋给一个date类型的变量d2
      

  2.   

    我实在太笨to_char已经将其转化成为字符型的哦!
    xiexie!
      

  3.   

    declare 
      d1   date:=sysdate; 
      d2   date; 
    begin 
      select   to_date(d1,'YYYY-MM')   into   d2   from   dual; 
    end;
    这样行不???
      

  4.   

    去oracle网站下载sql reference,或者就直接用TOAD带的那个帮助文档
      

  5.   

    @asacat
     真的要问你了
    我这样写
     :
    declare   
        d1       date:=sysdate;  
      d3 varchar(10);
        d2       date;   
    begin  
        select to_char(d1,'YYYY-MM') into d3 from dual;
        select       to_date(d3,'YY-MM')       into       d2       from       dual;   
    end; 
    为什么d3明明去掉了天,可是在转化成日期时候有加了01,但是我只要年和月不要天怎么办????