SQL Server日期时间问题.美国人与英国人?

sup*_*er9 11 sql-server datetime sql-server-2005 date-formatting

在我的测试数据库中,日期以DD/MM/YYYY格式显示.显示我的意思是当你右键单击,在Management Studio中打开表格时,返回的数据以DD/MM/YYYY格式显示.

有趣的是,当我编写T-SQL来检索记录时,我必须输入一个MM/DD/YYYY格式来获取正确的数据.无论如何我可以将它与DD/MM/YYYY格式对齐吗?

Meh*_*ari 12

您可以使用SET LANGUAGE选择SQL Server 在查询中期望的日期格式(我认为管理工作室使用客户端计算机的区域设置进行显示,但不确定).但是,我建议使用参数传递值,而不是在查询语句中嵌入它们.如果使用参数,则不会遇到任何问题.一切都得到了照顾.

set language us_english
declare @d datetime = '1929/12/18'

set language british
declare @d datetime = '1929/12/18' -- fails
Run Code Online (Sandbox Code Playgroud)

要更改服务器默认语言:

declare @langid int = (select langid from syslanguages where name = 'british')
exec sp_configure 'default language', @langid
reconfigure with override
Run Code Online (Sandbox Code Playgroud)