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

Come funziona Extract() in PostgreSQL

In PostgreSQL, il extract() la funzione recupera sottocampi come l'anno, il mese, l'ora o il minuto, parte da un valore di data/ora.

È equivalente a date_part() funzione, anche se con una sintassi leggermente diversa.

Sintassi

La sintassi è questa:

EXTRACT(field FROM source)

Dove:

  • field è un identificatore o una stringa che seleziona quale campo estrarre dal valore di origine.
  • source è un indicatore orario o un intervallo .

Esempio – Timestamp

Ecco un esempio di base per dimostrare come recuperare un campo da un timestamp valore.

SELECT extract(hour FROM timestamp '2022-10-30 10:11:35');

Risultato:

10

Questo esempio recupera il campo dell'ora da un timestamp valore.

Come accennato, il primo argomento può essere un identificatore o una stringa. Questa è una delle differenze tra extract() e date_part() . Quando si utilizza date_part() , devi fornire una stringa per questo argomento.

Ecco di nuovo lo stesso esempio, tranne che come stringa.

SELECT extract('hour' FROM timestamp '2022-10-30 10:11:35');

Risultato:

10

Ecco un esempio con lo stesso timestamp, ma questa volta recupero il campo dell'anno.

SELECT extract(year FROM timestamp '2022-10-30 10:11:35');

Risultato:

2022

Esempio – Intervallo

In questo esempio, recupero una parte della data da un intervallo valore.

SELECT extract(hour FROM interval '7 hours 45 minutes');

Risultato:

7

Nell'esempio successivo, la funzione restituisce correttamente il numero di ore, anche se fornisco solo il numero di minuti.

SELECT extract(hour FROM interval '120 minutes');

Risultato:

2

Tuttavia, non contare su questa tecnica. Potresti scoprire che non sempre ottieni il risultato che ti aspetti.

Ad esempio:

SELECT extract(hour FROM interval '100 minutes');

Risultato:

1

E un altro:

SELECT extract(minute FROM interval '2 hours');

Risultato:

0

Nomi dei campi

Il primo argomento può essere uno dei seguenti:

  • century
  • day
  • decade
  • dow
  • doy
  • epoch
  • hour
  • isodow
  • isoyear
  • microseconds
  • millennium
  • milliseconds
  • minute
  • month
  • quarter
  • second
  • timezone
  • timezone_hour
  • timezone_minute
  • week
  • year

Questi sono gli stessi dei valori validi per date_part() funzione.