【背景】
在对某日期数据进行抽取时,发现其中存在大量非日期数据,需要清洗垃圾数据(非日期数据)。
【解oracle账号决】
编写一个简单的判断是否为日期的函数,对数据为“日期”的抽取并赋予日期,对于“非日期”的数据,赋空处理。
参考如下:
/****************************************************************
*name :estimate_date
*function : 判断字符串是否能转换成正常日期,如果不能赋空处理
*input : isdate
*output : isdate
*author :深蓝
*CreateDate : 20150614
*UpdateDate : 20150614
****************************************************************/
create or replace function estimate_date (isdate varchar2) return varchar2 isd date;begin d:=to_date (nvl (isdate, ' '), 'yyyy-mm-dd hh24:mi:ss'); return isdate; exception when others then return '';end;
【实验】
select estimate_date('2014/05/06 23:01:18') from dual;
select estimate_date('aaaaaaa') from dual;
小知识,简而记之。