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

时间:2011-12-14 15:00:04

标签: 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]

但我收到此错误

  

Msg 243,Level 16,State 1,Line 1
  类型DATE不是已定义的系统类型。

2 个答案:

答案 0 :(得分:19)

您正在使用SQL Server 2005或更早版本。 SQL Server 2008中引入了数据类型date。请尝试转换为datetime

看一下如何从日期时间中删除时间部分的这个问题。 Best approach to remove time part of datetime in SQL Server

答案 1 :(得分:0)

如果您使用的是Sybase ASE,则需要的是datetime