字符型日期转换日期型的非常数据定位与处理

Posted databook

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符型日期转换日期型的非常数据定位与处理相关的知识,希望对你有一定的参考价值。

由于数据的不规范性,造成日期类型转换异常。通过编写函数,找出异常值。

 1   CREATE OR REPLACE EDITIONABLE FUNCTION FUN_STR_TO_DATE (I_STR VARCHAR2)
 2 return DATE is
 3    V_DATE DATE;
 4 begin
 5   V_DATE:= TO_DATE(I_STR,YYYY/MM/DD) ; --单一格式
 6   REturn V_DATE;
 7 EXCEPTION
 8   WHEN OTHERS THEN 
 9      select TO_DATE(99991231,YYYYMMDD) into V_DATE from dual;
10      return   V_DATE ;
11 end ;

或者:

 1   CREATE OR REPLACE EDITIONABLE FUNCTION FN_STR_TO_DATE (I_STR VARCHAR2)
 2 RETURN DATE IS
 3    V_DATE DATE;
 4 BEGIN
 5   if INSTR(I_STR,/) > 0 then 
 6      SELECT TO_DATE(I_STR,YYYY/MM/DD) INTO V_DATE FROM DUAL;
 7    elsif INSTR(I_STR,-) > 0 then 
 8      SELECT TO_DATE(I_STR,YYYY-MM-DD) INTO V_DATE FROM DUAL;
 9   else 
10     SELECT TO_DATE(I_STR,YYYYMMDD) INTO V_DATE FROM DUAL;
11   end if;--多种格式的日期
12   RETURN V_DATE;
13 EXCEPTION
14   WHEN OTHERS THEN 
15      SELECT TO_DATE(99991231,YYYYMMDD) INTO V_DATE FROM DUAL;
16      RETURN   V_DATE ;
17 END ;

 

异常数据都转换成 99991231,通过检索对比找到异常的源数据。

以上是关于字符型日期转换日期型的非常数据定位与处理的主要内容,如果未能解决你的问题,请参考以下文章

关于JAVA中字符串转换成日期型的问题

在SQL中怎样把字符型的数据转换成日期型的呢

JavaScript 之日起对象(转)

js中怎么吧long型的日期转换成String类型的

java 怎样把字符串“2011-10-10 18:11:56”转换成日期型的2011-10-10 18:11:56

vb字符串型的日期时间转数字型的