sql >> Databasteknik >  >> RDS >> Sqlserver

hur får man data för aktuell vecka endast i SQL-server?

Gör så här:

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

Förklaring:

  • datepart(dw, getdate()) kommer att returnera dagens nummer i den aktuella veckan, från 1 till 7, med början med vad du än har angett med STÄLL IN DATUM FÖRST .
  • dateadd(day, 1-datepart(dw, getdate()), getdate()) subtraherar det nödvändiga antalet dagar för att nå början av den aktuella veckan
  • CONVERT(date,getdate()) används för att ta bort tidsdelen av GETDATE(), eftersom du vill ha data som börjar vid midnatt.


  1. Kolumn Butiksplaner

  2. MySQL 5.5 förlorar efterföljande utrymmen i fråga

  3. Kan inte komma åt MySQL efter att det automatiskt genererade ett tillfälligt lösenord

  4. Skiljeväggar och High Water Mark i Oracle