如何检查出生日期格式的列是否在sql server中有yyyymmdd?

时间:2017-06-01 13:21:21

标签: sql sql-server

如何检查出生日期格式的列是否在sql server中有yyyymmdd?

3 个答案:

答案 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,那么谁在乎,那就是约会。