Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Extraire le numéro de semaine d'une date dans SQL Server (T-SQL)

Vous pouvez utiliser la fonction T-SQL DATEPART() pour renvoyer le numéro de semaine à partir d'une date dans SQL Server.

Par "numéro de semaine", j'entends le numéro de la semaine dans l'année à partir de la date spécifiée.

Exemple

Pour renvoyer le numéro de semaine, utilisez week comme premier argument de DATEPART() fonction.

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

Résultat :

30

Arguments alternatifs

Alternativement, vous pouvez utiliser wk ou ww comme premier argument pour faire la même chose.

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

Résultat :

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

Vous remarquerez que le numéro de semaine dans ces résultats est différent du numéro de semaine dans l'exemple précédent, même si les deux exemples ont utilisé le 20 juillet comme dates. C'est à prévoir.

Les deux exemples utilisent une année différente. Le numéro de la semaine peut être affecté par l'année. Donc, en d'autres termes, ce n'est pas parce que le 20 juillet est la 30e semaine d'une année que ce sera la 30e semaine chaque année. Juste quelque chose à garder à l'esprit.

Numéro de semaine ISO

Vous pouvez également renvoyer le numéro de semaine ISO à partir d'une date en utilisant le iso_week argument. Les semaines ISO commencent le lundi et la première semaine d'une année contient le 4 janvier de cette année.

Par conséquent, il est possible que les dates de début janvier fassent partie de la 52e ou de la 53e semaine de l'année précédente, et que les dates de fin décembre fassent partie de la première semaine de l'année suivante.