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
são adicionados à date_part do carimbo de data/hora e os valores negativos são subtraídos.quantity
-
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
do date_part
for maior que o valor timestamp1
do date_part
. O valor de retorno é um inteiro positivo quando o valor timestamp2
do date_part
for menor que o valor timestamp1
do date_part
.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
FROMtimestamp
)
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
ouZ
Deslocamento em horas ou
Z
se o deslocamento for 0XX
ouXXXX
+0700
ouZ
Deslocamento em horas e minutos ou
Z
se o deslocamento for 0XXX
ouXXXXX
+07:00
ouZ
Deslocamento em horas e minutos ou
Z
se o deslocamento for 0x
7
Deslocamento em horas
xx
ouxxxx
700
Deslocamento em horas e minutos
xxx
ouxxxxx
+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