Funções de data/hora - Amazon Timestream

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Funções de data/hora

nota

O Timestream for LiveAnalytics não suporta valores de tempo negativos. Qualquer operação que resulte em tempo negativo resulta em erro.

Timestream for LiveAnalytics usa o UTC fuso horário para data e hora. O Timestream suporta as seguintes funções de data e hora.

Geral e conversão

O Timestream for LiveAnalytics suporta as seguintes funções gerais e de conversão para data e hora.

Função Tipo de dados de saída Descrição

data_atual

date

Retorna a data atual emUTC. Nenhum parêntese foi usado.

SELECT current_date

Exemplo de resultado: 2022-07-07

nota

Essa também é uma palavra-chave reservada. Para obter uma lista de palavras-chave reservadas, consultePalavras-chave reservadas.

horário_atual

horário

Retorna a hora atual emUTC. Nenhum parêntese foi usado.

SELECT current_time

Exemplo de resultado: 17:41:52.827000000

nota

Essa também é uma palavra-chave reservada. Para obter uma lista de palavras-chave reservadas, consultePalavras-chave reservadas.

current_timestamp ou now ()

timestamp

Retorna o timestamp atual em. UTC

SELECT current_timestamp

Exemplo de resultado: 2022-07-07 17:42:32.939000000

nota

Essa também é uma palavra-chave reservada. Para obter uma lista de palavras-chave reservadas, consultePalavras-chave reservadas.

fuso horário_atual ()

varchar

O valor será 'UTC.'

O Timestream usa o UTC fuso horário para data e hora.

SELECT current_timezone()

Exemplo de resultado: UTC

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

date

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

Exemplo de resultado: 2022-07-07

último dia do mês (registro de data e hora), último dia do mês (data)

date

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

Exemplo de resultado: 2022-07-31

from_iso8601_timestamp (string)

timestamp

Analisa o carimbo de data/hora ISO 8601 em formato de carimbo de data/hora interno.

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

Exemplo de resultado: 2022-06-17 03:04:05.000000000

from_iso8601_date (string)

date

Analisa a string de data ISO 8601 em formato de carimbo de data/hora interno para UTC 00:00:00 da data especificada.

SELECT from_iso8601_date('2022-07-17')

Exemplo de resultado: 2022-07-17

to_iso8601 (timestamp), to_iso8601 (data)

varchar

Retorna uma string formatada ISO 8601 para a entrada.

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

Exemplo de resultado: 2022-06-17

from_milliseconds (bigint)

timestamp

SELECT from_milliseconds(1)

Exemplo de resultado: 1970-01-01 00:00:00.001000000

from_nanoseconds (bigint)

timestamp

select from_nanoseconds(300000001)

Exemplo de resultado: 1970-01-01 00:00:00.300000001

from_unixtime (duplo)

timestamp

Retorna um timestamp que corresponde ao unixtime fornecido.

SELECT from_unixtime(1)

Exemplo de resultado: 1970-01-01 00:00:01.000000000

hora local

horário

Retorna a hora atual emUTC. Nenhum parêntese foi usado.

SELECT localtime

Exemplo de resultado: 17:58:22.654000000

nota

Essa também é uma palavra-chave reservada. Para obter uma lista de palavras-chave reservadas, consultePalavras-chave reservadas.

carimbo de data/hora local

timestamp

Retorna o timestamp atual em. UTC Nenhum parêntese foi usado.

SELECT localtimestamp

Exemplo de resultado: 2022-07-07 17:59:04.368000000

nota

Essa também é uma palavra-chave reservada. Para obter uma lista de palavras-chave reservadas, consultePalavras-chave reservadas.

to_milissegundos (intervalo de dia a segundo), to_milissegundos (timestamp)

bigint

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

Exemplo de resultado: 183600000

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

Exemplo de resultado: 1655487883771

to_nanoseconds (intervalo de dia a segundo), to_nanoseconds (timestamp)

bigint

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

Exemplo de resultado: 183600000000000

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

Exemplo de resultado: 1655487883771000678

to_unixtime (timestamp)

double

Retorna unixtime para o timestamp fornecido.

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

Exemplo de resultado: 1.6554878837710001E9

date_trunc (unidade, carimbo de data/hora)

timestamp

Retorna o timestamp truncado para a unidade, onde a unidade é [segundo, minuto, hora, dia, semana, mês, trimestre ou ano].

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

Exemplo de resultado: 2022-06-17 17:44:00.000000000

Intervalo e duração

O Timestream for LiveAnalytics suporta as seguintes funções de intervalo e duração para data e hora.

Função Tipo de dados de saída Descrição

date_add (unidade, bigint, data), date_add (unidade, bigint, hora), date_add (varchar (x), bigint, timestamp)

timestamp

Adiciona uma grande quantidade de unidades, em que a unidade é uma de [segundo, minuto, hora, dia, semana, mês, trimestre ou ano].

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

Exemplo de resultado: 2022-06-17 09:00:00.000000000

date_diff (unidade, data, data), date_diff (unidade, hora, hora), date_diff (unidade, timestamp, timestamp)

bigint

Retorna uma diferença, em que a unidade é uma de [segundo, minuto, hora, dia, semana, mês, trimestre ou ano].

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

Exemplo de resultado: 1

parse_duration (string)

intervalo

Analisa a string de entrada para retornar um interval equivalente.

SELECT parse_duration('42.8ms')

Exemplo de resultado: 0 00:00:00.042800000

SELECT typeof(parse_duration('42.8ms'))

Exemplo de resultado: interval day to second

compartimento (registro de data e hora, intervalo)

timestamp

Arredonda o valor inteiro do timestamp parâmetro para o múltiplo mais próximo do valor inteiro do interval parâmetro.

O significado desse valor de retorno pode não ser óbvio. Ele é calculado usando aritmética de números inteiros primeiro dividindo o número inteiro do carimbo de data/hora pelo inteiro do intervalo e depois multiplicando o resultado pelo inteiro do intervalo.

Lembrando que um carimbo de data/hora especifica um UTC ponto no tempo como o número de frações de segundo decorridas desde a POSIX época (1º de janeiro de 1970), o valor de retorno raramente se alinhará às unidades do calendário. Por exemplo, se você especificar um intervalo de 30 dias, todos os dias desde a época serão divididos em incrementos de 30 dias, e o início do incremento mais recente de 30 dias será retornado, o que não tem relação com os meses do calendário.

Veja alguns exemplos:

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

atrás (intervalo)

timestamp

Retorna o valor correspondente a interval current_timestamp.

SELECT ago(1d)

Exemplo de resultado: 2022-07-06 21:08:53.245000000

literais de intervalo, como 1h, 1d e 30m

intervalo

Os literais de intervalo são convenientes para parse_duration (string). Por exemplo, 1d é o mesmo que parse_duration('1d'). Isso permite o uso dos literais sempre que um intervalo é usado. Por exemplo, ago(1d) e bin(<timestamp>, 1m).

Alguns literais de intervalo funcionam como uma abreviação de parse_duration. Por exemplo,parse_duration('1day'), 1dayparse_duration('1d'), e 1d cada retorno 1 00:00:00.000000000 onde o tipo estáinterval day to second. O espaço é permitido no formato fornecido paraparse_duration. Por exemplo, parse_duration('1day') também retorna00:00:00.000000000. Mas não 1 day é um intervalo literal.

As unidades relacionadas interval day to second são ns, nanosegundo, us, microssegundo, ms, milissegundo, s, segundo, m, minuto, h, hora, d e dia.

Também existeinterval year to month. As unidades relacionadas ao intervalo ano a mês são y, ano e mês. Por exemplo, SELECT 1year devoluções1-0. SELECT 12monthtambém retorna1-0. SELECT 8monthdevoluções0-8.

Embora a unidade de também quarter esteja disponível para algumas funções, como date_trunc edate_add, não quarter esteja disponível como parte de um intervalo literal.

Formatação e análise

O Timestream for LiveAnalytics suporta as seguintes funções de formatação e análise para data e hora.

Função Tipo de dados de saída Descrição

formato_data (timestamp, varchar (x))

varchar

Para obter mais informações sobre os especificadores de formato usados por essa função, consulte # 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')

Exemplo de resultado: 2019-10-20 10:20:20

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

timestamp

Para obter mais informações sobre os especificadores de formato usados por essa função, consulte # 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')

Exemplo de resultado: 2019-10-20 10:20:20.000000000

format_datetime (timestamp, varchar (x))

varchar

Para obter mais informações sobre a string de formato usada por essa função, consulte 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')

Exemplo de resultado: 1968-01-13 12

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

timestamp

Para obter mais informações sobre a string de formato usada por essa função, consulte 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')

Exemplo de resultado: 2019-12-29 18:10:00.000000000

Extração

O Timestream for LiveAnalytics suporta as seguintes funções de extração para data e hora. A função de extração é a base para as demais funções de conveniência.

Função Tipo de dados de saída Descrição

extract

bigint

Extrai um campo de um carimbo de data/hora, em que o campo é [YEAR,,QUARTER,MONTH, WEEKDAY, DAY _OF_,MONTH, DAY _OF_,, _OF_ WEEKDOW,,, DAY ou]. YEAR DOY YEAR WEEK YOW HOUR MINUTE SECOND

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

Exemplo de resultado: 2019

dia (timestamp), dia (data), dia (intervalo de dia a segundo)

bigint

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

Exemplo de resultado: 12

day_of_month (timestamp), day_of_month (data), day_of_month (intervalo de dia a segundo)

bigint

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

Exemplo de resultado: 12

day_of_week (timestamp), day_of_week (data)

bigint

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

Exemplo de resultado: 6

day_of_year (timestamp), day_of_year (data)

bigint

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

Exemplo de resultado: 285

down (timestamp), down (data)

bigint

Alias para day_of_week

doy (timestamp), doy (data)

bigint

Alias para day_of_year

hora (timestamp), hora (hora), hora (intervalo de dia a segundo)

bigint

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

Exemplo de resultado: 23

milissegundo (registro de data e hora), milissegundo (hora), milissegundo (intervalo de dia a segundo)

bigint

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

Exemplo de resultado: 0

minuto (timestamp), minuto (hora), minuto (intervalo de dia a segundo)

bigint

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

Exemplo de resultado: 10

mês (timestamp), mês (data), mês (intervalo ano a mês)

bigint

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

Exemplo de resultado: 10

nanosegundo (registro de data e hora), nanosegundo (tempo), nanosegundo (intervalo de dia a segundo)

bigint

SELECT nanosecond(current_timestamp)

Exemplo de resultado: 162000000

trimestre (registro de data e hora), trimestre (data)

bigint

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

Exemplo de resultado: 4

segundo (timestamp), segundo (hora), segundo (intervalo de dia a segundo)

bigint

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

Exemplo de resultado: 34

semana (data e hora), semana (data)

bigint

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

Exemplo de resultado: 41

semana_do_ano (timestamp), week_of_year (data)

bigint

Alias para a semana

ano (timestamp), ano (data), ano (intervalo ano a mês)

bigint

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

Exemplo de resultado: 2019

ano_da_semana (carimbo de data/hora), ano_da_semana (data)

bigint

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

Exemplo de resultado: 2019

como (carimbo de data/hora), como (data)

bigint

Alias para year_of_week