Funzioni data/ora - Amazon Timestream

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à.

Funzioni data/ora

Nota

Timestream for non LiveAnalytics supporta valori temporali negativi. Qualsiasi operazione che genera un tempo negativo genera un errore.

Timestream for LiveAnalytics utilizza il UTC fuso orario per data e ora. Timestream supporta le seguenti funzioni per data e ora.

Generale e conversione

Timestream for LiveAnalytics supporta le seguenti funzioni generali e di conversione per data e ora.

Funzione Tipo di dati di output Descrizione

data_corrente

data

Restituisce la data corrente in. UTC Nessuna parentesi utilizzata.

SELECT current_date

Risultato di esempio: 2022-07-07

Nota

Anche questa è una parola chiave riservata. Per un elenco di parole chiave riservate, vedereParole chiave riservate.

tempo_corrente

time

Restituisce l'ora corrente in. UTC Nessuna parentesi utilizzata.

SELECT current_time

Risultato di esempio: 17:41:52.827000000

Nota

Anche questa è una parola chiave riservata. Per un elenco di parole chiave riservate, vedereParole chiave riservate.

current_timestamp o now ()

timestamp

Restituisce il timestamp corrente in. UTC

SELECT current_timestamp

Risultato di esempio: 2022-07-07 17:42:32.939000000

Nota

Anche questa è una parola chiave riservata. Per un elenco di parole chiave riservate, vedereParole chiave riservate.

current_timezone ()

varchar

Il valore sarà '.' UTC

Timestream utilizza il UTC fuso orario per data e ora.

SELECT current_timezone()

Risultato di esempio: UTC

data (varchar (x)), data (timestamp)

data

SELECT date(TIMESTAMP '2022-07-07 17:44:43.771000000')

Risultato di esempio: 2022-07-07

last_day_of_month (timestamp), last_day_of_month (data)

data

SELECT last_day_of_month(TIMESTAMP '2022-07-07 17:44:43.771000000')

Risultato di esempio: 2022-07-31

from_iso8601_timestamp (stringa)

timestamp

Analizza il timestamp 8601 nel formato timestamp interno. ISO

SELECT from_iso8601_timestamp('2022-06-17T08:04:05.000000000+05:00')

Risultato di esempio: 2022-06-17 03:04:05.000000000

from_iso8601_date (stringa)

data

Analizza la stringa della data ISO 8601 nel formato timestamp interno per le 00:00:00 della data specificata. UTC

SELECT from_iso8601_date('2022-07-17')

Risultato di esempio: 2022-07-17

to_iso8601 (timestamp), to_iso8601 (data)

varchar

Restituisce una ISO stringa formattata 8601 per l'input.

SELECT to_iso8601(from_iso8601_date('2022-06-17'))

Risultato di esempio: 2022-06-17

from_milliseconds (bigint)

timestamp

SELECT from_milliseconds(1)

Risultato di esempio: 1970-01-01 00:00:00.001000000

from_nanoseconds (bigint)

timestamp

select from_nanoseconds(300000001)

Risultato di esempio: 1970-01-01 00:00:00.300000001

from_unixtime (double)

timestamp

Restituisce un timestamp che corrisponde all'unixtime fornito.

SELECT from_unixtime(1)

Risultato di esempio: 1970-01-01 00:00:01.000000000

ora locale

time

Restituisce l'ora corrente inUTC. Nessuna parentesi utilizzata.

SELECT localtime

Risultato di esempio: 17:58:22.654000000

Nota

Anche questa è una parola chiave riservata. Per un elenco di parole chiave riservate, vedereParole chiave riservate.

timestamp locale

timestamp

Restituisce il timestamp corrente in. UTC Nessuna parentesi utilizzata.

SELECT localtimestamp

Risultato di esempio: 2022-07-07 17:59:04.368000000

Nota

Anche questa è una parola chiave riservata. Per un elenco di parole chiave riservate, vedereParole chiave riservate.

to_milliseconds (intervallo da giorno a secondo), to_milliseconds (timestamp)

bigint

SELECT to_milliseconds(INTERVAL '2' DAY + INTERVAL '3' HOUR)

Risultato di esempio: 183600000

SELECT to_milliseconds(TIMESTAMP '2022-06-17 17:44:43.771000000')

Risultato di esempio: 1655487883771

to_nanoseconds (intervallo da giorno a secondo), to_nanoseconds (timestamp)

bigint

SELECT to_nanoseconds(INTERVAL '2' DAY + INTERVAL '3' HOUR)

Risultato di esempio: 183600000000000

SELECT to_nanoseconds(TIMESTAMP '2022-06-17 17:44:43.771000678')

Risultato di esempio: 1655487883771000678

to_unixtime (timestamp)

double

Restituisce unixtime per il timestamp fornito.

SELECT to_unixtime('2022-06-17 17:44:43.771000000')

Risultato di esempio: 1.6554878837710001E9

date_trunc (unità, timestamp)

timestamp

Restituisce il timestamp troncato in unità, dove l'unità è uno dei [secondo, minuto, ora, giorno, settimana, mese, trimestre o anno].

SELECT date_trunc('minute', TIMESTAMP '2022-06-17 17:44:43.771000000')

Risultato di esempio: 2022-06-17 17:44:00.000000000

Intervallo e durata

Timestream for LiveAnalytics supporta le seguenti funzioni di intervallo e durata per data e ora.

Funzione Tipo di dati di output Descrizione

date_add (unit, bigint, date), date_add (unit, bigint, time), date_add (varchar (x), bigint, timestamp)

timestamp

Aggiunge un insieme di unità, dove l'unità è una tra [secondo, minuto, ora, giorno, settimana, mese, trimestre o anno].

SELECT date_add('hour', 9, TIMESTAMP '2022-06-17 00:00:00')

Risultato di esempio: 2022-06-17 09:00:00.000000000

date_diff (unità, data, data), date_diff (unità, ora, ora), date_diff (unità, timestamp, timestamp)

bigint

Restituisce una differenza, dove l'unità è uno dei [secondo, minuto, ora, giorno, settimana, mese, trimestre o anno].

SELECT date_diff('day', DATE '2020-03-01', DATE '2020-03-02')

Risultato di esempio: 1

parse_duration (stringa)

intervallo

Analizza la stringa di input per restituire un equivalente. interval

SELECT parse_duration('42.8ms')

Risultato di esempio: 0 00:00:00.042800000

SELECT typeof(parse_duration('42.8ms'))

Risultato di esempio: interval day to second

bin (timestamp, intervallo)

timestamp

Arrotonda il valore intero del timestamp parametro al multiplo più vicino del valore intero del interval parametro.

Il significato di questo valore restituito potrebbe non essere ovvio. Viene calcolato utilizzando l'aritmetica dei numeri interi prima dividendo il numero intero del timestamp per il numero intero dell'intervallo e quindi moltiplicando il risultato per il numero intero dell'intervallo.

Tenendo presente che un timestamp specifica un UTC punto nel tempo come un numero di frazioni di secondo trascorse dall'epoca (1° gennaio 1970), il valore restituito raramente si allinea alle unità del calendario. POSIX Ad esempio, se si specifica un intervallo di 30 giorni, tutti i giorni trascorsi dall'epoca vengono divisi in incrementi di 30 giorni e viene restituito l'inizio dell'incremento di 30 giorni più recente, che non ha alcuna relazione con i mesi del calendario.

Ecco alcuni esempi:

bin(TIMESTAMP '2022-06-17 10:15:20', 5m) ==> 2022-06-17 10:15:00.000000000 bin(TIMESTAMP '2022-06-17 10:15:20', 1d) ==> 2022-06-17 00:00:00.000000000 bin(TIMESTAMP '2022-06-17 10:15:20', 10day) ==> 2022-06-17 00:00:00.000000000 bin(TIMESTAMP '2022-06-17 10:15:20', 30day) ==> 2022-05-28 00:00:00.000000000

fa (intervallo)

timestamp

Restituisce il valore corrispondente a interval current_timestamp.

SELECT ago(1d)

Risultato di esempio: 2022-07-06 21:08:53.245000000

valori letterali a intervalli come 1h, 1d e 30m

intervallo

I valori letterali a intervalli sono utili per parse_duration (string). Ad esempio, 1d è equivalente a parse_duration('1d'). Ciò consente l'uso dei valori letterali ovunque venga utilizzato un intervallo. Ad esempio ago(1d) e bin(<timestamp>, 1m).

Alcuni valori letterali a intervalli fungono da abbreviazione di parse_duration. Ad esempio,,parse_duration('1day'), e ogni ritorno in cui 1day si parse_duration('1d') trova il tipo1d. 1 00:00:00.000000000 interval day to second Lo spazio è consentito nel formato fornito aparse_duration. Ad esempio, restituisce parse_duration('1day') anche00:00:00.000000000. Ma non 1 day è un intervallo letterale.

Le unità relative a interval day to second sono ns, nanosecond, us, microsecond, ms, millisecond, s, second, m, minute, h, hour, d e day.

C'è anche. interval year to month Le unità relative all'intervallo da un anno all'altro sono y, anno e mese. Ad esempio, SELECT 1year restituisce1-0. SELECT 12monthrestituisce anche1-0. SELECT 8monthritorna0-8.

Sebbene l'unità di quarter sia disponibile anche per alcune funzioni come date_trunc edate_add, non quarter è disponibile come parte di un intervallo letterale.

Formattazione e analisi

Timestream for LiveAnalytics supporta le seguenti funzioni di formattazione e analisi per data e ora.

Funzione Tipo di dati di output Descrizione

date_format (timestamp, varchar (x))

varchar

Per ulteriori informazioni sugli specificatori di formato usati da questa funzione, vedere # https://trino.io/docs/current/functions/datetime.html mysql-date-functions

SELECT date_format(TIMESTAMP '2019-10-20 10:20:20', '%Y-%m-%d %H:%i:%s')

Risultato di esempio: 2019-10-20 10:20:20

date_parse (varchar (x), varchar (y))

timestamp

Per ulteriori informazioni sugli specificatori di formato usati da questa funzione, vedere # https://trino.io/docs/current/functions/datetime.html mysql-date-functions

SELECT date_parse('2019-10-20 10:20:20', '%Y-%m-%d %H:%i:%s')

Risultato di esempio: 2019-10-20 10:20:20.000000000

format_datetime (timestamp, varchar (x))

varchar

Per ulteriori informazioni sulla stringa di formato utilizzata da questa funzione, vedere http://joda-time.sourceforge. net/apidocs/org/joda/time/format/DateTimeFormat.html

SELECT format_datetime(parse_datetime('1968-01-13 12', 'yyyy-MM-dd HH'), 'yyyy-MM-dd HH')

Risultato di esempio: 1968-01-13 12

parse_datetime (varchar (x), varchar (y))

timestamp

Per ulteriori informazioni sulla stringa di formato utilizzata da questa funzione, vedere http://joda-time.sourceforge. net/apidocs/org/joda/time/format/DateTimeFormat.html

SELECT parse_datetime('2019-12-29 10:10 PST', 'uuuu-LL-dd HH:mm z')

Risultato di esempio: 2019-12-29 18:10:00.000000000

Estrazione

Timestream for LiveAnalytics supporta le seguenti funzioni di estrazione per data e ora. La funzione di estrazione è la base per le restanti funzioni di praticità.

Funzione Tipo di dati di output Descrizione

estratto

bigint

Estrae un campo da un timestamp, dove field è uno dei [YEAR,,,, _OF_ QUARTER MONTHWEEK, _OF_DAY,, DAY _OF_MONTH,, DAY _OF_WEEK,DOW,,, DAY or]. YEAR DOY YEAR WEEK YOW HOUR MINUTE SECOND

SELECT extract(YEAR FROM '2019-10-12 23:10:34.000000000')

Risultato di esempio: 2019

giorno (timestamp), giorno (data), giorno (intervallo da giorno a secondo)

bigint

SELECT day('2019-10-12 23:10:34.000000000')

Risultato di esempio: 12

day_of_month (timestamp), day_of_month (data), day_of_month (intervallo da giorno a secondo)

bigint

SELECT day_of_month('2019-10-12 23:10:34.000000000')

Risultato di esempio: 12

day_of_week (timestamp), day_of_week (data)

bigint

SELECT day_of_week('2019-10-12 23:10:34.000000000')

Risultato di esempio: 6

day_of_year (timestamp), day_of_year (data)

bigint

SELECT day_of_year('2019-10-12 23:10:34.000000000')

Risultato di esempio: 285

dow (timestamp), dow (data)

bigint

Alias per day_of_week

doy (timestamp), doy (data)

bigint

Alias per day_of_year

ora (timestamp), ora (ora), ora (intervallo da giorno a secondo)

bigint

SELECT hour('2019-10-12 23:10:34.000000000')

Risultato di esempio: 23

millisecondo (timestamp), millisecondo (ora), millisecondo (intervallo da giorno a secondo)

bigint

SELECT millisecond('2019-10-12 23:10:34.000000000')

Risultato di esempio: 0

minuto (timestamp), minuto (ora), minuto (intervallo da giorno a secondo)

bigint

SELECT minute('2019-10-12 23:10:34.000000000')

Risultato di esempio: 10

mese (timestamp), mese (data), mese (intervallo da anno a mese)

bigint

SELECT month('2019-10-12 23:10:34.000000000')

Risultato di esempio: 10

nanosecondo (timestamp), nanosecondo (ora), nanosecondo (intervallo da giorno a secondo)

bigint

SELECT nanosecond(current_timestamp)

Risultato di esempio: 162000000

trimestre (timestamp), trimestre (data)

bigint

SELECT quarter('2019-10-12 23:10:34.000000000')

Risultato di esempio: 4

secondo (timestamp), secondo (ora), secondo (intervallo da giorno a secondo)

bigint

SELECT second('2019-10-12 23:10:34.000000000')

Risultato di esempio: 34

settimana (timestamp), settimana (data)

bigint

SELECT week('2019-10-12 23:10:34.000000000')

Risultato di esempio: 41

settimana_del_anno (timestamp), settimana_del_anno (data)

bigint

Alias per settimana

anno (timestamp), anno (data), anno (intervallo da anno a mese)

bigint

SELECT year('2019-10-12 23:10:34.000000000')

Risultato di esempio: 2019

anno_di_settimana (timestamp), anno_del_settimana (data)

bigint

SELECT year_of_week('2019-10-12 23:10:34.000000000')

Risultato di esempio: 2019

yow (timestamp), yow (data)

bigint

Alias per year_of_week