SQL Server 2014 Тип DATE не является определенным типом системы - PullRequest
0 голосов
/ 12 февраля 2019

Я использую приведенный ниже запрос в хранимой процедуре

SELECT @ICOUNT = COUNT(*)
FROM MESSAGES
WHERE CAST(CREATEDDATE AS DATE) >= CAST(@STARTDATE AS DATE) 
    AND CAST(CREATEDDATE AS DATE) <= CAST(@ENDDATE AS DATE);

Он работает правильно в Sql Server 2008, где, как и в Sql Server 2014, я сталкиваюсь со следующей ошибкой:

Тип DATE не является определенным типом системы.

1 Ответ

0 голосов
/ 12 февраля 2019

Если уровень совместимости равен 90, это означает, что вы не работаете с SQL Server 2014, поскольку он не поддерживает этот уровень совместимости (минимальный поддерживаемый - 100).

Если вы работаете с 2012 (чтоявляется наивысшей версией, поддерживающей уровень совместимости 90), следует изменить уровень совместимости на 110. Для версии 2008/2008 r2 максимальный уровень совместимости равен 100.

Измените уровень совместимости с помощью alter database:

ALTER DATABASE database_name   
SET COMPATIBILITY_LEVEL = 110 -- or 100 for 2008 versions.
...