@sasacat 
  真的要问你了 
我这样写 
 : 
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明明去掉了天,可是在转化成日期(to_date)时候有加了01,但是我只要年和月不要天怎么办???? 

解决方案 »

  1.   

    只要是date型,显示出来肯定会有天的,你要不显示天只有用to_char来自己控制了
      

  2.   

    我to_char控制了啊!可是说只要年和月,哎完了!!!不管怎么转也有天是对的那只有在数据库建立个string了.没办法了???
      

  3.   

    是啊,你要是显示d3就肯定只有年和月啊,但你后来不又to_date了吗?你就不要再to_date,直接拿d3来显示好了
      

  4.   

    但是数据库里是date类型啊!!好象不能相等啊!????
      

  5.   

    数据库里是什么类型有什么关系呢,你就认为在这个表这个字段2008-02-01就代表2008-02就行啦,数据库里的东西最终还是要由你显示给用户看的,显示的时候来个to_char(d1,'YYYY-MM')嘛。要不你就把这个字段类型改成数字或字符型的。总之日期型就肯定有YYYYMMDD这几个要素的