我正在从 SQL Server 2008 迁移到 2014 并出现错误
数据类型 datetime 和 time 在 add 运算符中不兼容。
我想出了将时间转换为 DateTime 的解决方案,但是我在许多存储过程和视图中都有更改。
上述问题还有其他解决方案吗?
我正在从 SQL Server 2008 迁移到 2014 并出现错误
数据类型 datetime 和 time 在 add 运算符中不兼容。
我想出了将时间转换为 DateTime 的解决方案,但是我在许多存储过程和视图中都有更改。
上述问题还有其他解决方案吗?
如果您希望升级到 SQL2014,除了重构代码之外没有其他解决方案。下面的示例演示将兼容级别设置为 2008 并不能解决此错误。您将不得不修改所有存储过程和视图。
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = 100
GO
--DOESNOT WORK IN 2012
DECLARE @ESTRecords TABLE
(
ESTime TIME(7) NOT NULL ,
ESTDate DATE NOT NULL ,
ESTDateTime AS ( CONVERT(DATETIME, ESTDate, ( 108 )) + ESTime )
PERSISTED
)
INSERT INTO @ESTRecords
( ESTime, ESTDate )
VALUES ( '12:00 PM', '12/31/2012' )
SELECT *
FROM @ESTRecords