因此,我在查看SQL Server中ISDATE()函数的文档,并在示例中看到了这一点:

SET DATEFORMAT mdy;
SELECT ISDATE('15/04/2008'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('15/2008/04'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('2008/15/04'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('2008/04/15'); --Returns 1.

最后一个示例返回1(有效日期),但是上面的日期格式与函数表达式中的格式不匹配。我认为这是文档中的错误,但是我自己很好地尝试了一下,实际上返回了1。

那么,当日期格式为mdy时,为什么'2008/04/15'是有效日期呢?

此处的文档:http://msdn.microsoft.com/en-us/library/ms187347(SQL.105).aspx

最佳答案

来自http://msdn.microsoft.com/en-us/library/ms187347%28SQL.105%29.aspx#SessionSettingDependencies



因此,如果给定的字符串不适用于设置的日期格式,则它还会取消默认的语言选项,该选项允许以y/m/d之类的格式显示日期

关于sql-server - SQL Server ISDATE()函数-有人可以解释吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10331817/

10-10 22:13