有一个字符是储存个人生日日期,但之前是VARCHAR2,内容十分不规范,1999年7月、1999.1/1999-1 什么都有,现在想将字符转换成 date,请问有没有方案。

解决方案 »

  1.   

    写一个函数吧,不断的try,把各种可能的格式都试一遍。
      

  2.   

    用replace+正则表达式替换所有非数字字符,比如替换成‘-’,然后格式就基本差不多了,
    如果有1988-8-7 或者 1988-08-07这样的区别,你可以再用decode(length(substr(?))),这些函数综合使用,很容易达到一致的格式。
    然后对同一的格式to_date()
    over!
      

  3.   

    總結不同的日期字符串,自己寫function來提取。
      

  4.   

    2010-02-03直接用to_date();就行。