Funciones de fecha y hora - Amazon Timestream

Para obtener capacidades similares a las de Amazon Timestream, considere Amazon Timestream LiveAnalytics para InfluxDB. Ofrece una ingesta de datos simplificada y tiempos de respuesta a las consultas en milisegundos de un solo dígito para realizar análisis en tiempo real. Obtenga más información aquí.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Funciones de fecha y hora

nota

Timestream for no LiveAnalytics admite valores de tiempo negativos. Cualquier operación que dé como resultado un tiempo negativo genera un error.

Timestream for LiveAnalytics utiliza la zona horaria UTC para la fecha y la hora. Timestream admite las siguientes funciones de fecha y hora:

Funciones generales y de conversión

Timestream for LiveAnalytics admite las siguientes funciones generales y de conversión de fecha y hora.

Función Tipo de datos de salida Description (Descripción)

current_date

date

Devuelve la fecha actual en UTC. No se usan paréntesis.

SELECT current_date

Ejemplo de resultado: 2022-07-07

nota

También es una palabra clave reservada. Para obtener una lista de palabras clave reservadas, consulte Palabras clave reservadas.

current_time

hora

Devuelve la hora actual en UTC. No se usan paréntesis.

SELECT current_time

Ejemplo de resultado: 17:41:52.827000000

nota

También es una palabra clave reservada. Para obtener una lista de palabras clave reservadas, consulte Palabras clave reservadas.

current_timestamp o now()

timestamp

Devuelve la marca de tiempo actual en UTC.

SELECT current_timestamp

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

nota

También es una palabra clave reservada. Para obtener una lista de palabras clave reservadas, consulte Palabras clave reservadas.

current_timezone()

varchar

El valor será «UTC».

Timestream usa la zona horaria UTC para la fecha y la hora.

SELECT current_timezone()

Ejemplo de resultado: UTC

date(varchar(x)), date(marca de tiempo)

date

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

Ejemplo de resultado: 2022-07-07

last_day_of_month(marca de tiempo), last_day_of_month(fecha)

date

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

Ejemplo de resultado: 2022-07-31

from_iso8601_timestamp(cadena)

timestamp

Analiza la marca de tiempo ISO 8601 en un formato de marca de tiempo interno.

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

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

from_iso8601_date(cadena)

date

Analiza la cadena de fecha ISO 8601 para convertirla en un formato de marca de tiempo interno para las 00:00:00 UTC de la fecha especificada.

SELECT from_iso8601_date('2022-07-17')

Ejemplo de resultado: 2022-07-17

to_iso8601(marca de tiempo), to_iso8601(fecha)

varchar

Devuelve una cadena con formato ISO 8601 para la entrada.

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

Ejemplo de resultado: 2022-06-17

from_milliseconds(bigint)

timestamp

SELECT from_milliseconds(1)

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

from_nanoseconds(bigint)

timestamp

select from_nanoseconds(300000001)

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

from_unixtime (doble)

timestamp

Devuelve una marca de tiempo que corresponde al unixtime proporcionado.

SELECT from_unixtime(1)

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

localtime

hora

Devuelve la hora actual en UTC. No se usan paréntesis.

SELECT localtime

Ejemplo de resultado: 17:58:22.654000000

nota

También es una palabra clave reservada. Para obtener una lista de palabras clave reservadas, consulte Palabras clave reservadas.

localtimestamp

timestamp

Devuelve la marca de tiempo actual en UTC. No se usan paréntesis.

SELECT localtimestamp

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

nota

También es una palabra clave reservada. Para obtener una lista de palabras clave reservadas, consulte Palabras clave reservadas.

to_milliseconds(intervalo de un día a un segundo), to_milliseconds(marca de tiempo)

bigint

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

Ejemplo de resultado: 183600000

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

Ejemplo de resultado: 1655487883771

to_nanoseconds(intervalo de un día a un segundo), to_nanoseconds(marca de tiempo)

bigint

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

Ejemplo de resultado: 183600000000000

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

Ejemplo de resultado: 1655487883771000678

to_unixtime(marca de tiempo)

double

Devuelve unixtime para la marca de tiempo proporcionada.

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

Ejemplo de resultado: 1.6554878837710001E9

date_trunc(unidad, marca de tiempo)

timestamp

Devuelve la marca de tiempo truncada a la unidad, donde la unidad puede ser una de las siguientes: [segundo, minuto, hora, día, semana, mes, trimestre o año].

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

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

Intervalo y duración

Timestream for LiveAnalytics admite las siguientes funciones de intervalo y duración para la fecha y la hora.

Función Tipo de datos de salida Description (Descripción)

date_add(unidad, bigint, fecha), date_add(unidad, bigint, hora), date_add(varchar (x), bigint, marca de tiempo)

timestamp

Añade un bigint de unidades, donde la unidad es una de las siguientes: [segundo, minuto, hora, día, semana, mes, trimestre o año].

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

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

date_diff(unidad, fecha, fecha), date_diff(unidad, hora, hora), date_diff(unidad, marca de tiempo, marca de tiempo)

bigint

Devuelve una diferencia, donde la unidad es una de las siguientes: [segundo, minuto, hora, día, semana, mes, trimestre o año].

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

Ejemplo de resultado: 1

parse_duration(cadena)

intervalo

Analiza la cadena de entrada para devolver un interval equivalente.

SELECT parse_duration('42.8ms')

Ejemplo de resultado: 0 00:00:00.042800000

SELECT typeof(parse_duration('42.8ms'))

Ejemplo de resultado: interval day to second

bin(marca de tiempo, intervalo)

timestamp

Redondea el valor entero del parámetro timestamp al múltiplo más cercano del valor entero del parámetro interval.

El significado de este valor devuelto puede no ser obvio. Se calcula mediante aritmética de enteros, donde se divide primero el entero de la marca de tiempo por el entero del intervalo y, a continuación, se multiplica el resultado por el entero del intervalo.

Si se tiene en cuenta que una marca de tiempo especifica un punto UTC en el tiempo como el número de fracciones de segundo que han transcurrido desde la época POSIX (1 de enero de 1970), el valor devuelto rara vez se alineará con las unidades del calendario. Por ejemplo, si especifica un intervalo de 30 días, todos los días transcurridos desde la época se dividen en incrementos de 30 días y se devuelve el inicio del incremento de 30 días más reciente, que no tiene relación con los meses naturales.

Estos son algunos ejemplos:

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(intervalo)

timestamp

Devuelve el valor correspondiente al interval current_timestamp.

SELECT ago(1d)

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

Literales de intervalo como 1h, 1d y 30m

intervalo

Los literales de intervalo son útiles para parse_duration(cadena). Por ejemplo, 1d es igual que parse_duration('1d'). Esto permite el uso de los literales siempre que se utilice un intervalo. Por ejemplo, ago(1d) y bin(<timestamp>, 1m).

Algunos literales de intervalo actúan como forma abreviada de parse_duration. Por ejemplo, parse_duration('1day'), 1day, parse_duration('1d') y 1d devuelven individualmente 1 00:00:00.000000000 de tipo interval day to second. Se permite el espacio en el formato que se proporciona a parse_duration. Por ejemplo, parse_duration('1day') también devuelve 00:00:00.000000000. Pero 1 day no es un intervalo literal.

Las unidades correspondientes a interval day to second son ns, nanosegundo, us, microsegundo, ms, milisegundo, s, segundo, m, minuto, h, hora, d y día.

También hay interval year to month. Las unidades relacionadas con el intervalo de año a mes son y, año, y mes. Por ejemplo, SELECT 1year devuelve 1-0. SELECT 12month también devuelve 1-0. SELECT 8monthdevuelve 0-8.

Aunque la unidad de quarter también está disponible para algunas funciones, como date_trunc y date_add, quarter no está disponible como parte de un intervalo literal.

Formato y análisis

Timestream for LiveAnalytics admite las siguientes funciones de formato y análisis de fecha y hora.

Función Tipo de datos de salida Description (Descripción)

date_format(timestamp, varchar (x))

varchar

Para obtener más información sobre los especificadores de formato utilizados por esta función, 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')

Ejemplo de resultado: 2019-10-20 10:20:20

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

timestamp

Para obtener más información sobre los especificadores de formato utilizados por esta función, 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')

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

format_datetime(timestamp, varchar (x))

varchar

Para obtener más información sobre la cadena de formato utilizada por esta función, 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')

Ejemplo de resultado: 1968-01-13 12

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

timestamp

Para obtener más información sobre la cadena de formato utilizada por esta función, 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')

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

Extracción

Timestream for LiveAnalytics admite las siguientes funciones de extracción de fecha y hora. La función de extracción es la base de las demás funciones prácticas.

Función Tipo de datos de salida Description (Descripción)

extract

bigint

Extrae un campo de una marca de tiempo, donde el campo es uno de los siguientes: [YEAR, QUARTER, MONTH, WEEK, DAY, DAY_OF_MONTH, DAY_OF_WEEK, DOW, DAY_OF_YEAR, DOY, YEAR_OF_WEEK, YOW, HOUR, MINUTE o SECOND].

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

Ejemplo de resultado: 2019

day(marca de tiempo), day(fecha), day(intervalo de un día a otro)

bigint

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

Ejemplo de resultado: 12

day_of_month(marca de tiempo), day_of_month(fecha), day_of_month(intervalo de día a segundo)

bigint

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

Ejemplo de resultado: 12

day_of_week(marca de tiempo), day_of_week(fecha)

bigint

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

Ejemplo de resultado: 6

day_of_year(marca de tiempo), day_of_year(fecha)

bigint

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

Ejemplo de resultado: 285

dow(marca de tiempo), dow(fecha)

bigint

Alias de day_of_week

doy(marca de tiempo), doy(fecha)

bigint

Alias de day_of_year

hour(marca de tiempo), hour(hora), hour(intervalo de día a segundo)

bigint

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

Ejemplo de resultado: 23

millisecond(marca de tiempo), millisecond(hora), millisecond(intervalo de día a segundo)

bigint

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

Ejemplo de resultado: 0

minute(marca de tiempo), minute(hora), minute(intervalo de día a segundo)

bigint

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

Ejemplo de resultado: 10

month(marca de tiempo), month(fecha), month(intervalo de año a mes)

bigint

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

Ejemplo de resultado: 10

nanosecond(marca de tiempo), nanosecond(hora), nanosecond(intervalo de día a segundo)

bigint

SELECT nanosecond(current_timestamp)

Ejemplo de resultado: 162000000

quarter(marca de tiempo), quarter(fecha)

bigint

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

Ejemplo de resultado: 4

second(marca de tiempo), second(hora), second(intervalo de día a segundo)

bigint

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

Ejemplo de resultado: 34

week(marca de tiempo), week(fecha)

bigint

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

Ejemplo de resultado: 41

week_of_year(marca de tiempo), week_of_year(fecha)

bigint

Alias de semana

year(marca de tiempo), year(fecha), year(intervalo de año a mes)

bigint

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

Ejemplo de resultado: 2019

year_of_week(marca de tiempo), year_of_week(fecha)

bigint

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

Ejemplo de resultado: 2019

yow(marca de tiempo), yow(fecha)

bigint

Alias de year_of_week