1

我正在尝试使用在 varchar 列中存储日期(可以由用户输入,在某些情况下几乎没有验证)的第 3 方应用程序,然后使用CONVERT( DATETIME, MY_COLUMN )- 没有明确的格式 - 当它想要将它们用作日期时. 啊。

不出所料,这经常失败。但不总是。CONVERT如果不指定,SQL 的默认格式是什么?它似乎是 101(即 mm/dd/yyyy),但总是这样吗?它是否取决于数据库或服务器排序规则或其他一些设置?MSDN CAST和CONVERT 文档没有说。

我们使用的是 SQL Server 2014。

4

1 回答 1

1

对于默认值,它取决于服务器或登录级别的默认语言设置,它隐式地将dateformatdatefirst、 设置为与文化相关的设置。您还可以更改基于login. 例如

alter login [aucuparia] with default_language=[british];

这些可以在会话级别使用set languageset dateformat和进行更改set datefirst

要查看当前连接的语言设置:

select @@language;

要查看每种语言的设置:

select langid, alias, DateFormat, DateFirst, months, shortmonths, days 
from sys.syslanguages;
于 2017-03-23T17:34:42.277 回答