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

hvordan får man data for den aktuelle uge kun i SQL server?

Gør det sådan her:

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

Forklaring:

  • datepart(dw, getdate()) returnerer nummeret på dagen i den aktuelle uge, fra 1 til 7, begyndende med det, du har angivet ved hjælp af INDSTILL FØRST DATO .
  • dateadd(day, 1-datepart(dw, getdate()), getdate()) trækker det nødvendige antal dage for at nå begyndelsen af ​​den aktuelle uge
  • CONVERT(date,getdate()) bruges til at fjerne tidsdelen af ​​GETDATE(), fordi du vil have data, der begynder ved midnat.


  1. tjek for gyldig dato, som er erklæret i varchar2

  2. Hentning af de mest almindelige søgeord fra en tsvector-kolonne

  3. Hvordan undslipper man apostrof (') i MySql?

  4. Forespørgsel efter element af array i JSON-kolonnen