gpt4 book ai didi

sql-server - ISDate 在 SQL Server 中未按预期工作

转载 作者:行者123 更新时间:2023-12-03 03:44:52 26 4
gpt4 key购买 nike

Declare @var varchar(100)
set @var = '2000'

select
case when ISDATE(@var) = 1
then 'Valid Date'
when ISDATE(@var) = 0
then 'Invalid Date'
end

在上面的代码中,我的 @var 值为 2000,它不是日期。但如果我检查 isdate 函数,它会将其标记为有效日期。

我们可以做什么来获得预期的输出?

提前致谢

最佳答案

我发现了有趣的事情,希望这对你有帮助

ISDATE 如果表达式是有效的日期、时间或日期时间值,则返回 1;否则为 0。

ISDATE 如果表达式是 datetime2 值,则返回 0。

如果你运行这个

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

结果

enter image description here

如果你运行这个

Declare @var varchar(100)
set @var = '1752'

select cast(@var as datetime)

ERROR: The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

因为DATETIME当您运行查询时,日期范围为 1753 年 1 月 1 日至 9999 年 12 月 31 日,实际为 ISDATE('2000-01-01 00:00:00.000') code> 有效的 ISDATE 假定它是 DATETIME。

关于sql-server - ISDate 在 SQL Server 中未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32755924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com