Funzione EXTRACT - AWS Clean Rooms

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