Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Funzione EXTRACT
La funzione EXTRACT restituisce una parte di data o di ora da un valore TIMESTAMP, TIMESTAMPTZ, TIME o TIMETZ. Gli esempi includono un giorno, mese, ora, minuto, secondo, millisecondo o microsecondo da un timestamp.
Sintassi
EXTRACT(datepart FROM source)
Argomenti
- datepart
-
Il sottocampo di una data o ora da estrarre, ad esempio un giorno, un mese, un anno, un'ora, un minuto, un secondo, un millisecondo o un microsecondo. Per un elenco dei valori possibili, consultare Parti di data per funzioni di data e timestamp.
- source (origine)
-
Una colonna o un'espressione che restituisce un tipo di dati TIMESTAMP, TIMESTAMPTZ, TIME o TIMETZ.
Tipo restituito
INTEGER se il valore di origine restituisce un tipo di dati TIMESTAMP, TIME o TIMETZ.
DOUBLE PRECISION se il valore di origine restituisce il tipo di dati TIMESTAMPTZ.
Esempi con TIMESTAMP
Nel seguente esempio viene determinato il numero di settimane per le vendite il cui prezzo pagato è stato uguale o superiore a 10.000 USD.
select salesid, extract(week from saletime) as weeknum from sales where pricepaid > 9999 order by 2; salesid | weeknum --------+--------- 159073 | 6 160318 | 8 161723 | 26
L'esempio seguente restituisce il valore di minuti da un valore di timestamp letterale.
select extract(minute from timestamp '2009-09-09 12:08:43'); date_part --
L'esempio seguente restituisce il valore in millisecondi da un valore di timestamp letterale.
select extract(ms from timestamp '2009-09-09 12:08:43.101'); date_part ----------- 101
Esempi con TIMESTAMPTZ
L'esempio seguente restituisce il valore di anno da un valore di timestamp letterale.
select extract(year from timestamptz '1.12.1997 07:37:16.00 PST'); date_part ----------- 1997
Esempi con TIME
La tabella di esempio seguente TIME_TEST ha una colonna TIME_VAL (tipo TIME) con tre valori inseriti.
select time_val from time_test; time_val --------------------- 20:00:00 00:00:00.5550 00:58:00
Nell'esempio seguente vengono estratti i minuti da ogni timetz_val.
select extract(minute from time_val) as minutes from time_test; minutes ----------- 0 0 58
Nell'esempio seguente vengono estratte le ore da ogni time_val.
select extract(hour from time_val) as hours from time_test; hours ----------- 20 0 0
Nell'esempio seguente vengono estratti i millisecondi da un valore letterale.
select extract(ms from time '18:25:33.123456'); date_part ----------- 123
Esempi con TIMETZ
La tabella di esempio seguente TIMETZ_TEST ha una colonna TIMETZ_VAL (tipo TIMETZ) con tre valori inseriti.
select timetz_val from timetz_test; timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00
Nell'esempio seguente vengono estratte le ore da ogni timez_val.
select extract(hour from timetz_val) as hours from time_test; hours ----------- 4 0 5
Nell'esempio seguente vengono estratti i millisecondi da un valore letterale. I valori letterali non vengono convertiti in UTC prima dell'elaborazione dell'estrazione.
select extract(ms from timetz '18:25:33.123456 EST'); date_part ----------- 123
L'esempio seguente restituisce l'ora dell'offset del fuso orario, da UTC da un valore timetz letterale.
select extract(timezone_hour from timetz '1.12.1997 07:37:16.00 PDT'); date_part ----------- -7