ISDATE函数对于1753年之前的日期都返回0
今天看到一个帖子,将1753年之前的一个日期用ISDATE函数会返回0,自己也做了多个测试,发现确实如此:
declare @date asdate
set @date =convert(date,'17000101')
print @date --可以转化为Date类型
print ISDATE('17000101')
结果确实返回0:
1700-01-01
0
后来看到有人提到可能跟SQL Server日期的存储范围,查了一下MSDN发现:
ISDATE 的返回值取决于 SET DATEFORMAT、SET LANGUAGE 和配置默认语言服务器配置选项设定的设置。参考下文:http://msdn.microsoft.com/zh-cn/library/ms187347.aspx