我在如下面的柱中的一个数值:ISDATE没有验证正确的日期
C_Date - Varchar(10)
00030503
10030503
当我使用ISDATE函数在该列上,它被作为retruning有效的日期(即,1)。 我如何确保ISDATE返回0?
Declare @c_date varchar(10)
Set @c_date =00030503
select case when ISDATE(@c_date)=0 then 'invalid' else 'valid' end
请问您能纠正我吗?
当我从表中的列应用相同的条件,它不起作用。这是给我的有效日期。例如: 我有一个与080203的日期,为此我期待invlid结果,它正在与上面的查询,但是当我把相同的列从表中,它是给有效的结果。
@jpw他们呢?你如何解释第一个 - >'00030503'? – 2014-09-23 16:00:14
@Nadeem_MK我不好,忘了日期时间范围从1753-01-01开始,不同于从0001-01-01开始的日期。我会将00030503解释为5月3日3年,但我知道MSSQL不会。 – jpw 2014-09-23 16:03:21
我只是复制并粘贴你发布的查询并得到'invalid'作为结果 – 2014-09-23 16:12:16