Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

come ottenere i dati della settimana corrente solo nel server SQL?

Fallo in questo modo:

SET DATEFIRST 1 -- Define beginning of week as Monday
SELECT [...]
AND WorkDate >= dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate())) 
AND WorkDate <  dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate()))

Spiegazione:

  • datepart(dw, getdate()) restituirà il numero del giorno della settimana corrente, da 1 a 7, iniziando da quello che hai specificato usando IMPOSTA PRIMA DATA .
  • dateadd(day, 1-datepart(dw, getdate()), getdate()) sottrae il numero di giorni necessario per raggiungere l'inizio della settimana in corso
  • CONVERT(date,getdate()) viene utilizzato per rimuovere la parte temporale di GETDATE(), perché desideri che i dati inizino a mezzanotte.