5

我正在从 SQL Server 2008 迁移到 2014 并出现错误

数据类型 datetime 和 time 在 add 运算符中不兼容。

我想出了将时间转换为 DateTime 的解决方案,但是我在许多存储过程和视图中都有更改。

上述问题还有其他解决方案吗?

4

1 回答 1

4

如果您希望升级到 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
于 2015-05-11T11:21:40.340 回答