Funções de data - Amazon Simple Storage Service

Funções de data

O Amazon S3 Select é compatível com as seguintes funções de data.

DATE_ADD

Dada uma parte da data, uma quantidade e um carimbo de data/hora, DATE_ADD retorna um carimbo de data/hora atualizado, alterando a parte da data pela quantidade.

Sintaxe

DATE_ADD( date_part, quantity, timestamp )

Parâmetros

date_part

Especifica que parte da data deve ser modificada. Pode ser uma das partes a seguir:

  • year

  • mês

  • dia

  • hora

  • minuto

  • segundos

quantity

O valor a ser aplicado a um carimbo de data/hora atualizado. Os valores positivos para a quantity são adicionados à date_part do carimbo de data/hora e os valores negativos são subtraídos.

timestamp

O carimbo de data/hora de destino no qual a função opera.

Exemplos

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

Dada uma parte da data e dois carimbos de data/hora válidos, DATE_DIFF retorna a diferença nas partes da data. O valor de retorno é um inteiro negativo quando o valor date_part do timestamp1 for maior que o valor date_part do timestamp2. O valor de retorno é um inteiro positivo quando o valor date_part do timestamp1 for menor que o valor date_part do timestamp2.

Sintaxe

DATE_DIFF( date_part, timestamp1, timestamp2 )

Parâmetros

date_part

Especifica que parte dos carimbos de data/hora deve ser comparada. Para a definição de date_part, consulte DATE_ADD.

timestamp1

O primeiro carimbo de data/hora a ser comparado.

timestamp2

O segundo carimbo de data/hora a ser comparado.

Exemplos

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

Dada uma parte da data e um carimbo de data/hora, EXTRACT retorna o valor da parte da data do carimbo de data/hora.

Sintaxe

EXTRACT( date_part FROM timestamp )

Parâmetros

date_part

Especifica que parte dos carimbos de data/hora deve ser extraída. Pode ser uma das partes a seguir:

  • YEAR

  • MONTH

  • DAY

  • HOUR

  • MINUTE

  • SECOND

  • TIMEZONE_HOUR

  • TIMEZONE_MINUTE

timestamp

O carimbo de data/hora de destino no qual a função opera.

Exemplos

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

Dado um carimbo de data/hora e um padrão de formato, TO_STRING retorna uma representação de string do carimbo de data/hora no formato especificado.

Sintaxe

TO_STRING ( timestamp time_format_pattern )

Parâmetros

timestamp

O carimbo de data/hora de destino no qual a função opera.

time_format_pattern

Uma string que possui as seguintes interpretações de caracteres especiais:

Formato

Exemplo

Descrição

yy

69

Ano com dois dígitos

y

1969

Ano com quatro dígitos

yyyy

1969

Ano com 4 dígitos preenchido com zeros

M

1

Mês do ano

MM

01

Mês do ano preenchido com zeros

MMM

Jan

Nome do ano referente ao mês abreviado

MMMM

January

Nome completo do mês do ano

MMMMM

J

Primeira letra do mês do ano (NOTA: esse formato não é válido para uso com a função TO_TIMESTAMP.)

d

2

Dia do mês (1 a 31)

dd

02

Dia do mês preenchido com zeros (01 a 31)

a

AM

H do dia

h

3

Hora do dia (1 a 12)

hh

03

Hora do dia preenchida com zeros (01 a 12)

H

3

Hora do dia (0 a 23)

HH

03

Hora do dia preenchida com zeros (00 a 23)

m

4

Minuto da hora (0 a 59)

mm

04

Minuto da hora preenchido com zeros (00 a 59)

s

5

Segundo do minuto (0 a 59)

ss

05

Segundo do minuto preenchido com zeros (00 a 59)

S

0

Fração de um segundo (precisão: 0,1, intervalo: de 0,0 a 0,9)

SS

6

Fração de um segundo (precisão: 0,01, intervalo: de 0,0 a 0,99)

SSS

60

Fração de um segundo (precisão: 0,001, intervalo: de 0,0 a 0,999)

SSSSSSSSS

60000000

Fração de um segundo (precisão máxima: 1 nanossegundo, intervalo: de 0,0 a 0,999999999)

n

60000000

Nano de um segundo

X

+07 ou Z

Deslocamento em horas ou Z se o deslocamento for 0

XX ou XXXX

+0700 ou Z

Deslocamento em horas e minutos ou Z se o deslocamento for 0

XXX ou XXXXX

+07:00 ou Z

Deslocamento em horas e minutos ou Z se o deslocamento for 0

x

7

Deslocamento em horas

xx ou xxxx

700

Deslocamento em horas e minutos

xxx ou xxxxx

+07:00

Deslocamento em horas e minutos

Exemplos

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 uma string, TO_TIMESTAMP converte-se em um carimbo de data/hora. TO_TIMESTAMP é a operação inversa de TO_STRING.

Sintaxe

TO_TIMESTAMP ( string )

Parâmetros

string

A string de destino na qual a função opera.

Exemplos

TO_TIMESTAMP('2007T') -- `2007T` TO_TIMESTAMP('2007-02-23T12:14:33.079-08:00') -- `2007-02-23T12:14:33.079-08:00`

UTCNOW

UTCNOW retorna o tempo atual em UTC como um carimbo de data/hora.

Sintaxe

UTCNOW()

Parâmetros

UTCNOW não aceita parâmetros.

Exemplos

UTCNOW() -- 2017-10-13T16:02:11.123Z