In PostgreSQL puoi usare extract()
funzione per ottenere il numero della settimana da una data.
Puoi anche usare date_part()
funzione per fare la stessa cosa.
Esempio 1:la funzione extract()
Ecco un esempio di utilizzo di extract()
funzione per estrarre la settimana da una data.
SELECT extract(week from date '2020-12-27') AS "Week Number";
Risultato:
Week Number ------------- 52
Esempio 2:la funzione date_part()
Ecco come fare la stessa cosa usando date_part()
funzione.
SELECT date_part('week', date '2020-12-27') AS "Week Number";
Risultato:
Week Number ------------- 52
Esempio 3:Informazioni sul sistema di numerazione delle settimane ISO
Se ottieni risultati che non ti aspettavi, potrebbe essere dovuto al modo in cui è definita la numerazione delle settimane ISO.
Le settimane ISO iniziano il lunedì e la prima settimana di un anno contiene il 4 gennaio di quell'anno. Pertanto, è possibile che le date di inizio gennaio facciano parte della 52a o 53a settimana dell'anno precedente e che le date di fine dicembre facciano parte della prima settimana dell'anno successivo.
Esempio:
SELECT extract(week from date '2021-01-03') AS "2021-01-03", extract(week from date '2021-01-04') AS "2021-01-04";
Risultato:
2021-01-03 | 2021-01-04 ------------+------------ 53 | 1
In questo caso, il 3 gennaio 2021 fa ancora parte dell'ultima settimana del 2020. La prima settimana del 2021 non inizia fino al 4 gennaio.
Di seguito è riportato un altro esempio che mostra una data di fine anno che fa parte della prima settimana dell'anno successivo.
SELECT extract(week from date '2024-12-29') AS "2024-12-29", extract(week from date '2024-12-30') AS "2024-12-30";
Risultato:
2024-12-29 | 2024-12-30 ------------+------------ 52 | 1
In questo caso, il 29 dicembre 2024 fa parte dell'ultima settimana del 2024, ma appena arriviamo al 30 dicembre, siamo nella prima settimana del 2025.