我使用ISDATE()
函数检查值是否为Date。但是当我放9966
或任何四位数字时,该函数返回true
答案 0 :(得分:1)
是的,ISDATE()功能在某些情况下不可靠。所以,你应该学习如何Handle ISDATE() with care
ISDATE函数中的值首先被转换为日期时间
和
如果varchar数据类型用于存储格式化日期(例如YYYYMMDD), 要检查它是否是有效日期,您不仅需要使用ISDATE() 功能,还可以使用LEN()函数
答案 1 :(得分:1)
9966对于日期时间是隐含的CASTable,因为它是在1900年1月1日之后的9966天
试试这个(0
是1900年1月1日)
SELECT DATEADD(day, 9966, 0)