2011-12-14 18 views
11

Cercando questo per lanciare tempo lontanotipo di data non è un tipo di sistema definito

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] 

ma ottengo questo errore

Msg 243, livello 16, stato 1, riga 1
tipo di data non è un tipo di sistema definito.

+0

Quale ** VERSION ** di SQL Server stai usando ?? –

+0

E perché hai bisogno di lanciare 'SetupDateTime' su qualcos'altro ?? Quale tipo di dati è 'SetupDateTime' nella tua tabella ?? –

risposta

15

Si sta utilizzando SQL Server 2005 o versioni precedenti. Il tipo di dati date è stato introdotto in SQL Server 2008. Prova a trasmettere su datetime.

Dai un'occhiata a questa domanda su come rimuovere la parte dell'ora da un datetime. Best approach to remove time part of datetime in SQL Server

+0

ottimo che funzionava !!!! ora devo farli raggruppare usando distinti –

+0

Ho questo problema ora questa è la query –

0

Se si utilizza Sybase ASE, ciò che è necessario è datetime.

Problemi correlati