SQL 服务器从字符串转换日期的默认格式是什么
What is SQL Sever's default format for converting dates from strings
我正在尝试使用第 3 方应用程序,该应用程序在 varchar 列中存储日期(可以由用户输入,在某些情况下几乎不需要验证),然后使用 CONVERT( DATETIME, MY_COLUMN )
- 没有明确的format - 当它想将它们用作日期时。呃
毫不奇怪,这经常失败。但不总是。如果不指定,SQL 对 CONVERT
的默认格式是什么?它似乎是 101(即 mm/dd/yyyy),但情况总是如此吗?它取决于数据库或服务器排序规则或其他设置吗? MSDN CAST and CONVERT docs不说了。
我们正在使用 SQL Server 2014。
对于默认设置,它取决于服务器或登录级别的默认语言设置,它隐含地将 dateformat
、datefirst
设置为文化相关设置。您还可以根据 login
更改默认值。例如
alter login [aucuparia] with default_language=[british];
这些可以在会话级别更改 set language
, set dateformat
, and set datefirst
。
查看当前连接的语言设置:
select @@language;
查看每种语言的设置:
select langid, alias, DateFormat, DateFirst, months, shortmonths, days
from sys.syslanguages;
我正在尝试使用第 3 方应用程序,该应用程序在 varchar 列中存储日期(可以由用户输入,在某些情况下几乎不需要验证),然后使用 CONVERT( DATETIME, MY_COLUMN )
- 没有明确的format - 当它想将它们用作日期时。呃
毫不奇怪,这经常失败。但不总是。如果不指定,SQL 对 CONVERT
的默认格式是什么?它似乎是 101(即 mm/dd/yyyy),但情况总是如此吗?它取决于数据库或服务器排序规则或其他设置吗? MSDN CAST and CONVERT docs不说了。
我们正在使用 SQL Server 2014。
对于默认设置,它取决于服务器或登录级别的默认语言设置,它隐含地将 dateformat
、datefirst
设置为文化相关设置。您还可以根据 login
更改默认值。例如
alter login [aucuparia] with default_language=[british];
这些可以在会话级别更改 set language
, set dateformat
, and set datefirst
。
查看当前连接的语言设置:
select @@language;
查看每种语言的设置:
select langid, alias, DateFormat, DateFirst, months, shortmonths, days
from sys.syslanguages;