Funciones de fecha y hora - Amazon Timestream

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

General y 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 Descripción

fecha_actual

date

Devuelve la fecha actual en UTC. No se utilizan 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, consultePalabras clave reservadas.

hora_actual

hora

Devuelve la hora actual en UTC. No se utilizan 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, consultePalabras clave reservadas.

current_timestamp o now ()

marca de tiempo

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, consultePalabras clave reservadas.

current_timezone ()

varchar

El valor será «UTC».

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

SELECT current_timezone()

Ejemplo de resultado: UTC

fecha (varchar (x)), fecha (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)

marca de tiempo

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_milisegundos (bigint)

marca de tiempo

SELECT from_milliseconds(1)

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

from_nanoseconds (bigint)

marca de tiempo

select from_nanoseconds(300000001)

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

from_unixtime (doble)

marca de tiempo

Devuelve una marca de tiempo que corresponde al unixtime proporcionado.

SELECT from_unixtime(1)

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

hora local

hora

Devuelve la hora actual en UTC. No se utilizan 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, consultePalabras clave reservadas.

marca de tiempo local

marca de tiempo

Devuelve la marca de tiempo actual en UTC. No se utilizan 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, consultePalabras clave reservadas.

to_milisegundos (intervalo de un día a un segundo), to_milisegundos (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)

marca de tiempo

Devuelve la marca de tiempo truncada a la unidad, donde la unidad es una de [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 Descripción

date_add (unidad, bigint, fecha), date_add (unidad, bigint, hora), date_add (varchar (x), bigint, timestamp)

marca de tiempo

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 equivalente. interval

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)

marca de tiempo

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

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

Teniendo 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

hace (intervalo)

marca de tiempo

Devuelve el valor correspondiente a 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 (string). 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, y 1d cada uno devuelve parse_duration('1d') donde está el tipo. 1 00:00:00.000000000 interval day to second Se permite el espacio en el formato proporcionado aparse_duration. Por ejemplo, parse_duration('1day') también devuelve00:00:00.000000000. Pero no 1 day es un intervalo literal.

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

También lo hay. interval year to month Las unidades relacionadas con el intervalo de un año a otro son y, año y mes. Por ejemplo, las SELECT 1year devoluciones1-0. SELECT 12monthtambién devuelve1-0. SELECT 8monthdevoluciones0-8.

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

Formatear y analizar

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

Función Tipo de datos de salida 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))

marca de tiempo

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

marca de tiempo

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 de conveniencia.

Función Tipo de datos de salida 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_OF_MONTH, DAY_OF_WEEK, DOY, YEAR_OF_WEEK, YOW, HOUR, MINUTE o SECOND].

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

Ejemplo de resultado: 2019

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

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 un día a otro)

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

down (marca de tiempo), dow (fecha)

bigint

Alias de day_of_week

doy (marca de tiempo), doy (fecha)

bigint

Alias para day_of_year

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

bigint

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

Ejemplo de resultado: 23

milisegundo (marca de tiempo), milisegundo (hora), milisegundo (intervalo de un día a otro)

bigint

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

Ejemplo de resultado: 0

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

bigint

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

Ejemplo de resultado: 10

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

bigint

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

Ejemplo de resultado: 10

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

bigint

SELECT nanosecond(current_timestamp)

Ejemplo de resultado: 162000000

trimestre (marca de tiempo), trimestre (fecha)

bigint

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

Ejemplo de resultado: 4

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

bigint

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

Ejemplo de resultado: 34

semana (marca de tiempo), semana (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 para la semana

año (marca de tiempo), año (fecha), año (intervalo de un año a otro)

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

cómo (marca de tiempo), cómo (fecha)

bigint

Alias de year_of_week