Sql server SQL Server 2014类型日期不是已定义的系统类型

Sql server SQL Server 2014类型日期不是已定义的系统类型,sql-server,sql-server-2014,Sql Server,Sql Server 2014,我正在存储过程中使用以下查询 SELECT @ICOUNT = COUNT(*) FROM MESSAGES WHERE CAST(CREATEDDATE AS DATE) >= CAST(@STARTDATE AS DATE) AND CAST(CREATEDDATE AS DATE) <= CAST(@ENDDATE AS DATE); 选择@ICOUNT=COUNT(*) 来自消息 WHERE CAST(CREATEDDATE作为日期)>=CAST(@STARTDA

我正在存储过程中使用以下查询

SELECT @ICOUNT = COUNT(*)
FROM MESSAGES
WHERE CAST(CREATEDDATE AS DATE) >= CAST(@STARTDATE AS DATE) 
    AND CAST(CREATEDDATE AS DATE) <= CAST(@ENDDATE AS DATE);
选择@ICOUNT=COUNT(*)
来自消息
WHERE CAST(CREATEDDATE作为日期)>=CAST(@STARTDATE作为日期)

和CAST(CREATEDDATE AS DATE)如果兼容级别为90,则表示您没有使用SQL Server 2014,因为它不支持此兼容级别(支持的最低级别为100)

如果您使用的是2012(支持兼容性级别90的最高版本),则应将兼容性级别更改为110。对于2008/2008 r2版本,最大兼容性级别为100

使用以下命令更改兼容性级别:


从sys.databases运行
SELECT compatibility\u level,其中[name]=
(将
替换为数据库的实际名称)。结果如何?您确定使用的是2014版本而不是2012版本吗?上述查询的兼容性级别为90。什么是
SELECT@@version
ALTER DATABASE database_name   
SET COMPATIBILITY_LEVEL = 110 -- or 100 for 2008 versions.