SQL Server: с 2008 по 2014 год:- Типы данных datetime и time несовместимы в операторе добавления. Любое другое решение?
Я мигрирую с SQL Server 2008 на 2014 и получаю сообщение об ошибке
Типы данных datetime и time несовместимы в операторе добавления.
Я выяснил, как решение конвертировать время в DateTime, но у меня есть изменения во многих хранимых процедурах и представлениях.
Есть ли другое решение для вышеуказанной проблемы?
1 ответ
Решение
Нет другого решения, кроме перефакторинга вашего кода, если вы хотите перейти на 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