sql >> Databasteknik >  >> RDS >> Sqlserver

Extrahera veckonummer från ett datum i SQL Server (T-SQL)

Du kan använda T-SQL-funktionen DATEPART() för att returnera veckonummer från ett datum i SQL Server.

Med "veckonummer" menar jag veckans nummer inom året från det angivna datumet.

Exempel

För att returnera veckonummer, använd week som det första argumentet för DATEPART() funktion.

DECLARE @date date = '2020-07-20';
SELECT DATEPART(week, @date);

Resultat:

30

Alternativa argument

Alternativt kan du använda wk eller ww som det första argumentet för att göra samma sak.

DECLARE @date date = '2024-07-20';
SELECT 
    DATEPART(week, @date) AS week,
    DATEPART(wk, @date) AS wk,
    DATEPART(ww, @date) AS ww;

Resultat:

+--------+------+------+
 | week   | wk   | ww   |
 |--------+------+------|
 | 29     | 29   | 29   |
 +--------+------+------+  

Du kommer att märka att veckonumret i dessa resultat skiljer sig från veckonumret i föregående exempel, även om båda exemplen använde 20 juli som datum. Detta är att vänta.

De två exemplen använder ett annat årtal. Veckans antal kan påverkas av året. Så med andra ord, bara för att den 20 juli är den 30:e veckan på ett år, betyder det inte att det blir den 30:e veckan varje år. Bara något att tänka på.

ISO-veckonummer

Du kan också returnera ISO-veckans nummer från ett datum genom att använda iso_week argument. ISO-veckor börjar på måndagar och den första veckan på ett år innehåller den 4 januari samma år.

Därför är det möjligt att datum i början av januari är en del av den 52:a eller 53:e veckan föregående år, och att datum i slutet av december är en del av den första veckan nästa år.


  1. Typer i MySQL:BigInt(20) vs Int(20)

  2. Hur man returnerar utdata från lagrad procedur till en variabel i sql-server

  3. Hur COLLATION() fungerar i MariaDB

  4. SQL mellan inte inkluderande