PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ottieni il numero della settimana da una data in PostgreSQL

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.