Funções de data e hora - Amazon Timestream

Para recursos semelhantes aos do Amazon Timestream para, considere o Amazon Timestream LiveAnalytics para InfluxDB. Ele oferece ingestão de dados simplificada e tempos de resposta de consulta de um dígito em milissegundos para análises em tempo real. Saiba mais aqui.

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 e 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 fuso horário UTC 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 Description

current_date

date

Retorna a data atual em UTC. 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, consulte Palavras-chave reservadas.

current_time

horário

Retorna a hora atual em UTC. 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, consulte Palavras-chave reservadas.

current_timestamp or now()

timestamp

Retorna o registro de data e hora 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, consulte Palavras-chave reservadas.

current_timezone()

varchar

O valor será 'UTC'.

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

SELECT current_timezone()

Exemplo de resultado: UTC

date(varchar(x)), date(timestamp)

date

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

Exemplo de resultado: 2022-07-07

last_day_of_month(timestamp), last_day_of_month(date)

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 registro de data e hora ISO 8601 em formato de registro de data e 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 registro de data e 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(date)

varchar

Retorna uma string formatada em 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(double)

timestamp

Retorna um registro de data e hora que corresponde ao unixtime fornecido.

SELECT from_unixtime(1)

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

localtime

horário

Retorna a hora atual em UTC. 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, consulte Palavras-chave reservadas.

localtimestamp

timestamp

Retorna o registro de data e hora 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, consulte Palavras-chave reservadas.

to_milliseconds(interval day to second), to_milliseconds(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(interval day to second), 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 registro de data e hora fornecido.

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

Exemplo de resultado: 1.6554878837710001E9

date_trunc(unit, timestamp)

timestamp

Retorna o registro de data e hora 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 Description

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

timestamp

Adiciona uma grande quantidade de unidades, em que a unidade é uma dentre [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(unit, date, date) , date_diff(unit, time, time) , date_diff(unit, timestamp, timestamp)

bigint

Retorna uma diferença, em que a unidade é uma dentre [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

bin(timestamp, interval)

timestamp

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

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 registro de data e hora pelo inteiro do intervalo e depois multiplicando o resultado pelo inteiro do intervalo.

Tendo em mente que um registro de data e hora especifica um momento UTC como o número de frações de segundo decorridas desde a época POSIX (1º de janeiro de 1970), o valor de retorno raramente se alinhará ao 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

ago(interval)

timestamp

Retorna o valor correspondente a current_timestamp interval.

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'), 1day, parse_duration('1d') e 1d retornam 1 00:00:00.000000000 onde o tipo é interval day to second. O espaço é permitido no formato fornecido para parse_duration. Por exemplo, parse_duration('1day') também retorna 00:00:00.000000000. Mas 1 day não é um intervalo literal.

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

Também há o interval year to month. As unidades relacionadas ao intervalo ano a mês são y, ano e mês. Por exemplo, SELECT 1year retorna 1-0. SELECT 12month também retorna 1-0. SELECT 8month retorna 0-8.

Embora a unidade de quarter também esteja disponível para algumas funções, como date_trunc e date_add, quarter não está 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 Description

date_format(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 Description

extract

bigint

Extrai um campo de um registro de data e hora, onde o campo é um dentre [YEAR, QUARTER, MONTH, WEEK, DAY, DAY_OF_MONTH, DAY_OF_WEEK, DOW, DAY_OF_YEAR, DOY, YEAR_OF_WEEK, YOW, HOUR, MINUTE ou SECOND].

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

Exemplo de resultado: 2019

day(timestamp), day(date), day(interval day to second)

bigint

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

Exemplo de resultado: 12

day_of_month(timestamp), day_of_month(date), day_of_month(interval day to second)

bigint

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

Exemplo de resultado: 12

day_of_week(timestamp), day_of_week(date)

bigint

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

Exemplo de resultado: 6

day_of_year(timestamp), day_of_year(date)

bigint

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

Exemplo de resultado: 285

dow(timestamp), dow(date)

bigint

Alias para day_of_week

doy(timestamp), doy(date)

bigint

Alias para day_of_year

hour(timestamp), hour(time), hour(interval day to second)

bigint

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

Exemplo de resultado: 23

millisecond(timestamp), millisecond(time), millisecond(interval day to second)

bigint

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

Exemplo de resultado: 0

minute(timestamp), minute(time), minute(interval day to second)

bigint

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

Exemplo de resultado: 10

month(timestamp), month(date), month(interval year to month)

bigint

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

Exemplo de resultado: 10

nanosecond(timestamp), nanosecond(time), nanosecond(interval day to second)

bigint

SELECT nanosecond(current_timestamp)

Exemplo de resultado: 162000000

quarter(timestamp), quarter(date)

bigint

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

Exemplo de resultado: 4

second(timestamp), second(time), second(interval day to second)

bigint

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

Exemplo de resultado: 34

week(timestamp), week(date)

bigint

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

Exemplo de resultado: 41

week_of_year(timestamp), week_of_year(date)

bigint

Alias para semana

year(timestamp), year(date), year(interval year to month)

bigint

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

Exemplo de resultado: 2019

year_of_week(timestamp), year_of_week(date)

bigint

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

Exemplo de resultado: 2019

yow(timestamp), yow(date)

bigint

Alias para year_of_week