Sql 服务器语言设置 - 在视图中保留英国日期设置

Sql Server Language Settings - Preserve UK Date setting in view

我正在尝试将字符串 date/times 从现有数据转换为 T-SQL DATETIME 类型。字符串采用英国格式 'dd/MM/yyyy HH:mm:ss'

CREATE VIEW v_DateFix
AS
   SELECT CAST([Start Date Local] AS DATETIME) AS StartDate
   FROM MyTable
GO    

这最初失败了:错误消息是

Msg 242, Level 16, State 3, Line 39
The conversion of a nvarchar data type to a datetime data type resulted in an out-of-range value.

所以我重新配置了语言设置

select * 
from sys.syslanguages 
where name = 'British'

-- Set default language to British 
EXEC sp_configure 'default language', 23;
GO

RECONFIGURE;
GO

创建视图仍然抛出同样的错误。我也尝试在 master 上配置默认语言,然后重新启动服务器。仍然无法创建视图。

我可以在 CREATE VIEW 语句

之前使用此语句
SET LANGUAGE BRITISH;

现在可以创建视图了。但是重新启动服务器甚至打开一个新查询 window 并从视图中选择仍然会出现错误。我无法将 SET LANGUAGE 语句作为视图的一部分。

那么如何让 SQL Server Express V 14.0.1000 始终使用英国日期格式?

你总是可以使用这样的东西:

SELECT CONVERT(DATETIME, '01/06/2018 09:30:15', 103)

103表示一种格式,如所述here