现在要把数据库里某列日期数据长度为4的情况下拼成yyyy-mm-dd的格式
比如原本是1990。就要把它拼成1990-01-01。
而且这个列的数据类型是VARCHAR2,如何转化成DATE?

解决方案 »

  1.   

    update biao set ziduan = to_date(ziduan,'yyyy-mm-dd')||'01-01'
      

  2.   

    update biao set ziduan = to_date(ziduan,'yyyy')||'-01-01'
      

  3.   

    楼主是要把这个字段的数据类型改成DATE型的吗?还是保持原来的VARCHAR2类型下,只把数据改成DD-MM-YYYY格式?
      

  4.   

    update tablename set cloumname = to_date(ziduan,'yyyy')||'-01-01'
      

  5.   


    不知楼主想要什么,麻烦楼主说清楚点
    是不是要把原表中'2010'这样的数据转换成'2010-01-01',
    update 表名 set 列名=列名||'-01-01' where length(列名)=4
      

  6.   

    update tablename set col1= 
    to_date(to_char(col1,'yyyy)||'-01-01','yyyy-mm-dd')
    where length(col1)=4;
      

  7.   

    SQL> select trunc(to_date('1990','yyyy'),'y') from dual;
     
    TRUNC(TO_DATE('1990','YYYY'),'
    ------------------------------
    1990-1-1
     
    SQL> 
      

  8.   

    比如原本是1990。就要把它拼成1990-01-01。
    to_date(‘1990-1-1’,'yyyy-mm-dd');
      

  9.   

    select to_char(to_date('1990'||'-01-01','YYY-MM-DD'),'YYYYMMDD') ConvVCDate from dual;
      

  10.   

    日期型的 to_date 字符型的 to_char
      

  11.   

    TRUNC(TO_DATE('2011', 'YYYY'), 'YYYY')
      

  12.   

    select to_date(t_date,'yyyy')||'-01-01'
     from table_name
    where  lengthb(t_data) = 4;