无论登录日期格式如何,CAST nvarchar到datetime?

Cur*_*urt 3 sql-server datetime casting nvarchar sql-server-2008

我有2台服务器,有两种不同的登录日期格式(English&British English).

CAST无论日期格式如何,我都需要能够将nvarchar值设置为datetime.

我有以下查询:

select cast('2011-13-07' as datetime)
Run Code Online (Sandbox Code Playgroud)

这适用于1台服务器,但不适用于其他服务器.

我可以用另一种方式表示两个服务器13/7/2011datetime对象吗?

为保持一致性,两个服务器上的查询需要相同.

mar*_*c_s 5

使用ISO-8601标准格式YYYYMMDD:

SELECT CAST('20110713' as DATETIME)
Run Code Online (Sandbox Code Playgroud)

不要使用任何破折号!该格式适用于任何SQL Server实例,无论语言,区域,区域设置如何 - 它只是起作用!

ISO-8601中的另一种格式是YYYY-MM-DDTHH:MM:SS- 这个包括破折号,但也包括时间部分.