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
我正在尝试将字符串 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