sql >> Database >  >> RDS >> Sqlserver

hoe gegevens van de huidige week alleen in SQL-server te krijgen?

Doe het als volgt:

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

Uitleg:

  • datepart(dw, getdate()) retourneert het nummer van de dag in de huidige week, van 1 tot 7, beginnend met wat je hebt opgegeven met STEL EERST DATUM IN .
  • dateadd(day, 1-datepart(dw, getdate()), getdate()) trekt het benodigde aantal dagen af ​​om het begin van de huidige week te bereiken
  • CONVERT(date,getdate()) wordt gebruikt om het tijdgedeelte van GETDATE() te verwijderen, omdat u gegevens wilt die om middernacht beginnen.


  1. MySQL - hoe lang duurt het om een ​​index te maken?

  2. Gegevenstype van veld ophalen in select-instructie in ORACLE

  3. LINQ to SQL Take w/o Skip Veroorzaakt meerdere SQL-statements

  4. Best practices voor het schalen van databases:deel twee