用sql语句判断字符串是否是日期格式的。

发布网友 发布时间:2022-04-24 17:58

我来回答

2个回答

懂视网 时间:2022-05-02 01:28

最近需要验证数据仓库某个字段是否转化成某种日期格式,比如时间戳格式 ‘2016-05-03 23:21:35.0‘,

但是DB2不支持REGEXP_LIKE(匹配)函数,所以需要重新想其他办法。

最后使用了最常规的like来模糊匹配,虽然比不上正则匹配那么精准,但也够用了。

思路:

一个下划线代表一个字符,那‘2016-05-03 23:21:35.0‘可以表示成‘____-__-__-__.__.__.______‘。

当然这种办法比较笨,不能识别是数字还是字母还是字符,当然更好的办法是编写UDF(自定义函数)来实现正则匹配。

SELECT EMP_ID, TIMESTAMP,RTRIM(CAST(TIMESTAMP AS CHAR(30))) DT
FROM TEST.EMPTAB
WHERE 
RTRIM(CAST(TIMESTAMP AS CHAR(30))) not like ‘____-__-__-__.__.__.______‘
WITH UR;

 

利用SQL模糊匹配来验证字段是否是日期格式

标签:利用   定义函数   sql   arp   不能   reg   log   支持   har   

热心网友 时间:2022-05-01 22:36

具体思路:

1.判断字符串是否8位

2.如果是8位,通过datalength判断是否8位,如果不是8位,说明字符串中存在汉字或者不可见字符

3.通过Ascii码对8位中的每一位字符进行判断,目的是判断是否数字(按照AsciI码可以避免不可见字符)

4.如果符合上述3中条件,说明字符是8位的数字,判断是否正常日期

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com