oracle筛选不能进行字符串转日期to | 您所在的位置:网站首页 › oracle将日期转为字符串 › oracle筛选不能进行字符串转日期to |
在oracle中,有时候需要对时间格式的字符串进行排序 比如说有个字段是TEST_TIME是varchar类型的,但是需要通过它对数据进行排序,就需要对字段进行to_date转换。但有时候数据中会出现脏数据(不能转换为date的数据)。导致报错。报错如下显示:
因此需要把脏数据给排除掉或者找出来删除掉。 因此需要写一个function把不能转换位日期的字符串找出来。思路就是把字符串转换为日期,如果成功就返回'Y',如果报错,就返回'N' function如下显示: CREATE OR REPLACE FUNCTION F_IS_DATE (I_DATE VARCHAR2) RETURN VARCHAR2 IS V_DATE DATE; BEGIN V_DATE := to_date(I_DATE,'yyyy-mm-dd hh24:mi:ss'); RETURN 'Y'; EXCEPTION WHEN OTHERS THEN RETURN 'N'; END F_IS_DATE;然后这样就可以写出一个筛选不能转换为日期的字符串了。 sql如下: select * from SFC_DATAGROUP_DJ where f_is_date(TEST_TIME)='N'就能找出不能转换为日期的字符串了
同理:字符串转小数,字符串转整数等等都可以用相似的方式筛选出不符合要求的数据。 参考:https://zhidao.baidu.com/question/691902130567092484.html |
CopyRight 2018-2019 实验室设备网 版权所有 |