Funciones de datos
importante
Amazon S3 Select ya no está disponible para los nuevos clientes. Los clientes actuales de Amazon S3 Select pueden seguir utilizando la característica de la forma habitual. Más información
Amazon S3 Select admite las siguientes funciones de fecha.
DATE_ADD
Dadas una parte de fecha, una cantidad y una marca temporal, DATE_ADD
devuelve una marca temporal actualizada alterando la parte de fecha por la cantidad especificada.
Sintaxis
DATE_ADD(
date_part
,quantity
,timestamp
)
Parámetros
date_part
-
Especifica qué parte de la fecha se debe modificar. Puede ser una de las siguientes:
-
año
-
mes
-
día
-
hora
-
minuto
-
segundos
-
-
quantity
-
El valor que se debe aplicar a la marca temporal actualizada. Los valores positivos de
se agregan a la parte de fecha de la marca temporal, y los valores negativos se restan.quantity
-
timestamp
-
La marca temporal de destino en la que opera la función.
Ejemplos
DATE_ADD(year, 5, `2010-01-01T`) -- 2015-01-01 (equivalent to 2015-01-01T) DATE_ADD(month, 1, `2010T`) -- 2010-02T (result will add precision as necessary) DATE_ADD(month, 13, `2010T`) -- 2011-02T DATE_ADD(day, -1, `2017-01-10T`) -- 2017-01-09 (equivalent to 2017-01-09T) DATE_ADD(hour, 1, `2017T`) -- 2017-01-01T01:00-00:00 DATE_ADD(hour, 1, `2017-01-02T03:04Z`) -- 2017-01-02T04:04Z DATE_ADD(minute, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:05:05.006Z DATE_ADD(second, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:04:06.006Z
DATE_DIFF
Dadas una parte de fecha y dos marcas temporales válidas, DATE_DIFF
devuelve la diferencia entre las partes de fecha. El valor devuelto es un número entero negativo si el valor
de date_part
es mayor que el valor timestamp1
de date_part
. El valor devuelto es un número entero positivo si el valor timestamp2
de date_part
es menor que el valor timestamp1
de date_part
.timestamp2
Sintaxis
DATE_DIFF(
date_part
,timestamp1
,timestamp2
)
Parámetros
-
date_part
-
Especifica qué parte de las marcas temporales se debe comparar. Para ver la definición de
date_part
, consulte DATE_ADD. -
timestamp1
-
La primera marca temporal que se va a comparar.
-
timestamp2
-
La segunda marca temporal que se va a comparar.
Ejemplos
DATE_DIFF(year, `2010-01-01T`, `2011-01-01T`) -- 1 DATE_DIFF(year, `2010T`, `2010-05T`) -- 4 (2010T is equivalent to 2010-01-01T00:00:00.000Z) DATE_DIFF(month, `2010T`, `2011T`) -- 12 DATE_DIFF(month, `2011T`, `2010T`) -- -12 DATE_DIFF(day, `2010-01-01T23:00`, `2010-01-02T01:00`) -- 0 (need to be at least 24h apart to be 1 day apart)
EXTRACT
Dadas una parte de fecha y una marca temporal, EXTRACT
devuelve el valor de la parte de fecha de la marca temporal.
Sintaxis
EXTRACT(
date_part
FROMtimestamp
)
Parámetros
-
date_part
-
Especifica qué parte de las marcas temporales se va a extraer. Puede ser una de las siguientes:
-
YEAR
-
MONTH
-
DAY
-
HOUR
-
MINUTE
-
SECOND
-
TIMEZONE_HOUR
-
TIMEZONE_MINUTE
-
-
timestamp
-
La marca temporal de destino en la que opera la función.
Ejemplos
EXTRACT(YEAR FROM `2010-01-01T`) -- 2010 EXTRACT(MONTH FROM `2010T`) -- 1 (equivalent to 2010-01-01T00:00:00.000Z) EXTRACT(MONTH FROM `2010-10T`) -- 10 EXTRACT(HOUR FROM `2017-01-02T03:04:05+07:08`) -- 3 EXTRACT(MINUTE FROM `2017-01-02T03:04:05+07:08`) -- 4 EXTRACT(TIMEZONE_HOUR FROM `2017-01-02T03:04:05+07:08`) -- 7 EXTRACT(TIMEZONE_MINUTE FROM `2017-01-02T03:04:05+07:08`) -- 8
TO_STRING
Dados una marca temporal y un patrón de formato, TO_STRING
devuelve una representación de cadena de la marca temporal en el formato especificado.
Sintaxis
TO_STRING (
timestamp
time_format_pattern
)
Parámetros
-
timestamp
-
La marca temporal de destino en la que opera la función.
-
time_format_pattern
-
Una cadena que tiene las siguientes interpretaciones de caracteres especiales:
Formato
Ejemplo
Descripción
yy
69
Año en 2 dígitos
y
1969
Año en 4 dígitos
yyyy
1969
Año en 4 dígitos rellenado con ceros
M
1
Mes del año
MM
01
Mes del año rellenado con ceros
MMM
Jan
Nombre del mes del año abreviado
MMMM
January
Nombre del mes del año completo
MMMMM
J
Primera letra del mes del año (NOTA: este formato no es válido para su uso con la función
TO_TIMESTAMP
).d
2
Día del mes (1-31)
dd
02
Día del mes rellenado con ceros (01-31)
a
AM
AM o PM
h
3
Hora del día (1-12)
hh
03
Hora del día rellenada con ceros (01-12)
H
3
Hora del día (0-23)
HH
03
Hora del día rellenada con ceros (00-23)
m
4
Minuto (0-59)
mm
04
Minutos rellenados con ceros (00-59)
s
5
Segundo (0-59)
ss
05
Segundos rellenados con ceros (00-59)
S
0
Fracción de un segundo (precisión: 0,1, rango: 0,0-0,9)
SS
6
Fracción de un segundo (precisión: 0,01, rango: 0,0-0,99)
SSS
60
Fracción de un segundo (precisión: 0,001, rango: 0,0-0,999)
…
…
…
SSSSSSSSS
60000000
Fracción de un segundo (precisión máxima: 1 nanosegundo, rango: 0,0-0,999999999)
n
60000000
Nanosegundo
X
+07
oZ
Desplazamiento en horas o
Z
si el desplazamiento es 0XX
oXXXX
+0700
oZ
Desplazamiento en horas y minutos o
Z
si el desplazamiento es 0XXX
oXXXXX
+07:00
oZ
Desplazamiento en horas y minutos o
Z
si el desplazamiento es 0x
7
Desplazamiento en horas
xx
oxxxx
700
Desplazamiento en horas y minutos
xxx
oxxxxx
+07:00
Desplazamiento en horas y minutos
Ejemplos
TO_STRING(`1969-07-20T20:18Z`, 'MMMM d, y') -- "July 20, 1969" TO_STRING(`1969-07-20T20:18Z`, 'MMM d, yyyy') -- "Jul 20, 1969" TO_STRING(`1969-07-20T20:18Z`, 'M-d-yy') -- "7-20-69" TO_STRING(`1969-07-20T20:18Z`, 'MM-d-y') -- "07-20-1969" TO_STRING(`1969-07-20T20:18Z`, 'MMMM d, y h:m a') -- "July 20, 1969 8:18 PM" TO_STRING(`1969-07-20T20:18Z`, 'y-MM-dd''T''H:m:ssX') -- "1969-07-20T20:18:00Z" TO_STRING(`1969-07-20T20:18+08:00Z`, 'y-MM-dd''T''H:m:ssX') -- "1969-07-20T20:18:00Z" TO_STRING(`1969-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXX') -- "1969-07-20T20:18:00+0800" TO_STRING(`1969-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXXX') -- "1969-07-20T20:18:00+08:00"
TO_TIMESTAMP
Dada una cadena, TO_TIMESTAMP
la convierte en una marca temporal. TO_TIMESTAMP
es la operación inversa de TO_STRING
.
Sintaxis
TO_TIMESTAMP (
string
)
Parámetros
-
string
-
La cadena de destino sobre la que opera la función.
Ejemplos
TO_TIMESTAMP('2007T') -- `2007T` TO_TIMESTAMP('2007-02-23T12:14:33.079-08:00') -- `2007-02-23T12:14:33.079-08:00`
UTCNOW
UTCNOW
devuelve la hora actual en UTC como una marca temporal.
Sintaxis
UTCNOW()
Parámetros
UTCNOW
no acepta parámetros.
Ejemplos
UTCNOW() -- 2017-10-13T16:02:11.123Z