2011-12-14 24 views
11

Tratando esta a tiempo de lanzamiento de distanciatipo de fecha no es un tipo definido por el sistema de

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] 

pero me da este error

Msg 243, nivel 16, estado 1, línea 1
tipo de fecha no es un tipo de sistema definido.

+0

¿Qué ** VERSIÓN ** de SQL Server estás usando? –

+0

¿Y por qué incluso necesitas convertir 'SetupDateTime' a algo más ?? ¿Qué tipo de datos es 'SetupDateTime' en su tabla? –

Respuesta

15

Está utilizando SQL Server 2005 o una versión anterior. El tipo de datos date se introdujo en SQL Server 2008. Intente enviarlo al datetime.

Eche un vistazo a esta pregunta sobre cómo eliminar la parte de tiempo de una fecha y hora. Best approach to remove time part of datetime in SQL Server

+0

genial que funcionó !!!! ahora tengo que hacer que se agrupen usando –

+0

distinto Tengo este problema ahora que es la consulta –

0

Si está utilizando Sybase ASE, lo que necesita es datetime.

Cuestiones relacionadas