Dans PostgreSQL, vous pouvez utiliser le extract()
fonction pour obtenir le numéro de semaine à partir d'une date.
Vous pouvez également utiliser le date_part()
fonction pour faire la même chose.
Exemple 1 :La fonction extract()
Voici un exemple d'utilisation de extract()
fonction pour extraire la semaine d'une date.
SELECT extract(week from date '2020-12-27') AS "Week Number" ;
Résultat :
Numéro de semaine ------------- 52
Exemple 2 :La fonction date_part()
Voici comment faire la même chose en utilisant le date_part()
fonction.
SELECT date_part('week', date '2020-12-27') AS "Numéro de la semaine" ;
Résultat :
Numéro de semaine ------------- 52
Exemple 3 :À propos du système de numérotation des semaines ISO
Si vous obtenez des résultats inattendus, cela peut être dû à la façon dont la numérotation des semaines ISO est définie.
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.
Exemple :
SELECT extract(week from date '2021-01-03') AS "2021-01-03", extract(week from date '2021-01-04') AS "2021-01-04" ;Résultat :
2021-01-03 | 2021-01-04 ------------+----------- 53 | 1Dans ce cas, le 3 janvier 2021 fait toujours partie de la dernière semaine de 2020. La première semaine de 2021 ne commence que le 4 janvier.
Vous trouverez ci-dessous un autre exemple qui montre qu'une date à la fin de l'année fait partie de la première semaine de l'année suivante.
SELECT extract(week from date '2024-12-29') AS "2024-12-29", extract(week from date '2024-12-30') AS "2024-12-30" ;Résultat :
2024-12-29 | 2024-12-30 ------------+----------- 52 | 1Dans ce cas, le 29 décembre 2024 fait partie de la dernière semaine de 2024, mais dès que nous arrivons au 30 décembre, nous sommes dans la première semaine de 2025.