In PostgreSQL puoi usare extract()
funzione per ottenere l'anno 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 l'anno da una data.
SELECT extract( year from date '1974-12-16' ) AS "Year";
Risultato:
Year ------ 1974
Ecco un altro esempio che utilizza il timestamp corrente.
SELECT extract( year from current_timestamp ) AS "Year";
Risultato:
Year ------ 2020
Esempio 2:la funzione date_part()
Ecco un esempio di utilizzo di date_part()
funzione invece.
SELECT date_part( 'year', date '1974-12-16' ) AS "Year";
Risultato:
Year ------ 1974
Nota la sintassi leggermente diversa. Anche il 'year'
il parametro deve essere un valore stringa (cioè racchiuso tra virgolette singole).
Esempio 3:Anno ISO
Hai la possibilità di specificare l'anno di numerazione delle settimane ISO 8601.
Ogni anno di numerazione delle settimane ISO 8601 inizia con il lunedì della settimana contenente il 4 gennaio, quindi all'inizio di gennaio o alla fine di dicembre l'anno ISO potrebbe essere diverso dall'anno gregoriano (dipende dall'anno in questione).
Ecco un esempio che lo dimostra.
SELECT extract( isoyear from date '2024-12-29' ) AS "2024-12-29", extract( isoyear from date '2024-12-30' ) AS "2024-12-30";
Risultato:
2024-12-29 | 2024-12-30 ------------+------------ 2024 | 2025
Quindi entrambe le date rientrano nel 2024 nel calendario gregoriano, ma rientrano in un anno ISO diverso.
Il date_part()
la funzione accetta anche 'isoyear'
come argomento.