将列logintime中的数据里的"-"改为"/",如原数据:2010-01-20 18:55:41.340,修改后:2010/01/20 18:55:41.340

解决方案 »

  1.   


    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
    Connected as csdn
    SQL> select regexp_replace('2010-01-20 18:55:41.340','-','\') from dual;REGEXP_REPLACE('2010-01-2018:5
    ------------------------------
    2010\01\20 18:55:41.340SQ
      

  2.   

    本帖最后由 inthirties 于 2010-02-05 17:01:35 编辑
      

  3.   

    写反了SQL> select regexp_replace('2010-01-20 18:55:41.340','-','/') from dual;REGEXP_REPLACE('2010-01-2018:5
    ------------------------------
    2010/01/20 18:55:41.340SQL> 
      

  4.   

    replace(to_char(logintime,'yyyy-mm-dd hh24:mi:ss'),'-','/')
      

  5.   

    你的logintime是什么类型的?
    如果是date型的,则没必要更新,提取时指定显示格式就可以了。如果是varchar2或其他字符型的,可以update test set logintime=replace(logintime,'-','/');
    commit;看你的值,还有毫秒,应该是不是字符型的。
      

  6.   

    是datatime类型的,sqlserver里的,我要把这列的"-"都换成"/",要不导到oracle后就变样了。
      

  7.   

    谢谢大家,方法都管用,但是出现了一个吐血的问题,SqlerverDataTime型字段不支持"/",一输入就变回"-",而直接导入到Oracle后,在Oracle中在改也不行,因为Oracle也不支持"-",直接导入后数据就变样了,有点晕了。结贴了,本贴的问题已得答案,回头在另开一贴专门讨论Sqlserver2008-Oracle11G数据迁移问题,嘎嘎~!