如何检查出生日期格式的列是否在sql server中有yyyymmdd?
答案 0 :(得分:1)
您可以使用ISDATE函数进行验证,但我不知道您拥有哪个SQL版
实施例
select ISDATE ( 1 )
------------------
0
select ISDATE ( 11111111 )
------------------
0
select ISDATE ( 20170501)
------------------
1
答案 1 :(得分:1)
您可以使用:
select (case when try_convert(date, dob) is not null and
try_convert(int, dob) is not null
then 1 else 0
end)
我不是100%肯定,但我认为yyyymmdd是唯一通常会通过这两种情况的格式。注意:无法知道20170601是真的是6月1日还是1月6日,所以这实际上无法验证该字段的内容。
但是为什么你关心格式是什么,只要你能把它转换成日期?然后,您应该将列更改为日期类型,然后知道"格式"是对的。
答案 2 :(得分:0)
如果列是Char类型(yuck),那么Like'[12] [0-9] [0-9] [0-9] [0-1] [0-9] [0-3] [ 0-9]'(脱离我的头顶)
如果是DateTime,那么谁在乎,那就是约会。