Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie bekomme ich Daten der aktuellen Woche nur in SQL Server?

Gehen Sie folgendermaßen vor:

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()))

Erklärung:

  • datepart(dw, getdate()) gibt die Zahl des Tages in der aktuellen Woche von 1 bis 7 zurück, beginnend mit dem, was Sie mit DATEFIRST EINSTELLEN .
  • dateadd(day, 1-datepart(dw, getdate()), getdate()) subtrahiert die notwendige Anzahl an Tagen, um den Beginn der aktuellen Woche zu erreichen
  • CONVERT(date,getdate()) wird verwendet, um den Zeitteil von GETDATE() zu entfernen, da die Daten um Mitternacht beginnen sollen.