偶们现在开发中表temp_ja_person中有一字段为issue_date(为日期型数据),现在我们数据库中这个字段的值有
2004-09-30、2004-9-30、1999-7-15这三种格式的日期,现在偶们想要将其全部转为2004-09-30格式,请问这条sql该怎么写,谢谢大虾
本人是sql菜鸟,大虾最好把整条sql全部写出来,谢谢咯

解决方案 »

  1.   

    因为我们这些数据是从excel里拷进去的,而excel里的数据又是由不同的人输入的,所以格式不太统一
      

  2.   

    我想用substr来写,但偶们项目经理说不用这样,用日期转换就可以了,可这我又不会,所以搞的很是郁闷
      

  3.   

    SELECT TO_CHAR(to_date('2005-9-30','yyYY-MM-DD'), 'yyYY-MM-DD') from dual;
    ---->2005-09-30
      

  4.   

    替换:
    SELECT TO_CHAR(to_date(issue_date,'yyYY-MM-DD'), 'yyYY-MM-DD') from dual;
      

  5.   

    to_date(to_char(issue_date,'yyyymmdd'),'yyyy-mm-dd')
      

  6.   

    SELECT TO_CHAR(to_date(issue_date,'YYYY-MM-DD'), 'YYYY-MM-DD') from temp_ja_person这句没问题,完全符合要求,但是下面的sql报错,
    update temp_ja_person set issue_date=(SELECT TO_CHAR(to_date(issue_date,'YYYY-MM-DD'), 'YYYY-MM-DD') from temp_ja_person);
    说single-row subquery returns more than one row!!请问我该怎样写下面的sql,谢谢大虾
      

  7.   

    update temp_ja_person set issue_date=TO_CHAR(to_date(issue_date,'YYYY-MM-DD'), 'YYYY-MM-DD');