Declare @var varchar(100)
set @var = '2000'
select
case when ISDATE(@var) = 1
then 'Valid Date'
when ISDATE(@var) = 0
then 'Invalid Date'
end
在上面的代码中,我有2000年的值,这不是日期。但是,如果我使用
@var
函数检查,它将其标记为有效日期。
我们该怎么做才能获得预期的输出?提前三
我找到了有趣的东西,我可以帮助您
ISDATE如果表达式是有效的日期,时间或日期时间值,则返回1;否则,0
isdate
result
如果您运行此
declare @var varchar(100)
set @var = '1753'
select cast(@var as datetime)
select
case when ISDATE(@var) = 1
then 'Valid Date'
when ISDATE(@var) = 0
then 'Invalid Date'
end
eRROR:将VARCHAR数据类型转换为DateTime数据类型的结果
在超出范围的值中。
bausdateTime
declare @var varchar(100)
set @var = '1752'
select cast(@var as datetime)
January 1, 1753, through December 31, 9999