我正在尝试将字符串日期/时间从现有数据转换为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
将nvarchar数据类型转换为日期时间数据类型会导致超出范围的值。
所以我重新配置了语言设置
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始终使用英国日期格式?
答案 0 :(得分:1)