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

Extrahieren der Wochennummer aus einem Datum in SQL Server (T-SQL)

Sie können die T-SQL-Funktion DATEPART() verwenden um die Wochennummer von einem Datum in SQL Server zurückzugeben.

Mit „Wochennummer“ meine ich die Wochennummer innerhalb des Jahres des angegebenen Datums.

Beispiel

Um die Wochennummer zurückzugeben, verwenden Sie week als erstes Argument von DATEPART() Funktion.

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

Ergebnis:

30

Alternative Argumente

Alternativ können Sie wk verwenden oder ww als erstes Argument, dasselbe zu tun.

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

Ergebnis:

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

Sie werden feststellen, dass sich die Wochennummer in diesen Ergebnissen von der Wochennummer im vorherigen Beispiel unterscheidet, obwohl in beiden Beispielen der 20. Juli als Datum verwendet wurde. Dies ist zu erwarten.

Die beiden Beispiele verwenden ein anderes Jahr. Die Wochenzahl kann durch das Jahr beeinflusst werden. Mit anderen Worten, nur weil der 20. Juli die 30. Woche in einem Jahr ist, heißt das nicht, dass es jedes Jahr die 30. Woche sein wird. Nur etwas, worauf man achten sollte.

ISO-Wochennummer

Sie können auch die ISO-Wochennummer von einem Datum zurückgeben, indem Sie iso_week verwenden Streit. ISO-Wochen beginnen montags und die erste Woche eines Jahres enthält den 4. Januar dieses Jahres.

Daher ist es möglich, dass Termine Anfang Januar Teil der 52. oder 53. Woche des Vorjahres und Termine Ende Dezember Teil der ersten Woche des nächsten Jahres sind.