Funciones de datos - Amazon Simple Storage Service

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 quantity se agregan a la parte de fecha de la marca temporal, y los valores negativos se restan.

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 date_part de timestamp1 es mayor que el valor date_part de timestamp2. El valor devuelto es un número entero positivo si el valor date_part de timestamp1 es menor que el valor date_part de 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 FROM timestamp )

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 o Z

Desplazamiento en horas o Z si el desplazamiento es 0

XX o XXXX

+0700 o Z

Desplazamiento en horas y minutos o Z si el desplazamiento es 0

XXX o XXXXX

+07:00 o Z

Desplazamiento en horas y minutos o Z si el desplazamiento es 0

x

7

Desplazamiento en horas

xx o xxxx

700

Desplazamiento en horas y minutos

xxx o xxxxx

+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