类型DATE不是已定义的系统类型

Chr*_*nko 14 sql-server sql-server-2005

试着把时间浪费掉

   select CONVERT(char(10), [Reg Date1], 103) [Reg Date], Regs
    from (
          select cast(SetupDateTime as DATE) [Reg Date1]
               , COUNT(distinct ID) [Regs]
          from dbo.tbl_User
          where cast(SetupDateTime as DATE) 
                between cast((DATEADD (dd , -7 , GETDATE())) AS DATE) 
                    and cast((DATEADD (dd , -1 , GETDATE())) AS DATE)
          group by cast(SetupDateTime as DATE)
        ) a
    order by a.[Reg Date1]
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误

消息243,级别16,状态1,行1
类型DATE不是定义的系统类型.

Mik*_*son 19

您正在使用SQL Server 2005或更早版本.数据类型日期是在SQL Server 2008中引入的.尝试转换为日期时间.

看一下如何从日期时间中删除时间部分的这个问题.删除SQL Server中datetime时间部分的最佳方法