我正在尝试将字符串日期/时间从现有数据转换为 T-SQLDATETIME
类型。字符串采用英国格式 'dd/MM/yyyy HH:mm:ss'
CREATE VIEW v_DateFix
AS
SELECT CAST([Start Date Local] AS DATETIME) AS StartDate
FROM MyTable
GO
这最初失败:错误消息是
消息 242,级别 16,状态 3,第 39 行
将 nvarchar 数据类型转换为 datetime 数据类型导致值超出范围。
所以我重新配置了语言设置
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;
现在可以创建视图。但是,重新启动服务器甚至打开一个新的查询窗口并从视图中选择仍然会出现错误。我不能将 SET LANGUAGE 语句作为视图的一部分。
那么如何让 SQL Server Express V 14.0.1000 始终使用英国日期格式?