Funções de data
Importante
O Amazon S3 Select não está mais disponível para novos clientes. Os clientes existentes do Amazon S3 Select podem continuar usando o recurso normalmente. Saiba mais
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_partFROMtimestamp)
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 (timestamptime_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
yy69Ano com dois dígitos
y1969Ano com quatro dígitos
yyyy1969Ano com 4 dígitos preenchido com zeros
M1Mês do ano
MM01Mês do ano preenchido com zeros
MMMJanNome do ano referente ao mês abreviado
MMMMJanuaryNome completo do mês do ano
MMMMMJPrimeira letra do mês do ano (NOTA: esse formato não é válido para uso com a função
TO_TIMESTAMP.)d2Dia do mês (1 a 31)
dd02Dia do mês preenchido com zeros (01 a 31)
aAMH do dia
h3Hora do dia (1 a 12)
hh03Hora do dia preenchida com zeros (01 a 12)
H3Hora do dia (0 a 23)
HH03Hora do dia preenchida com zeros (00 a 23)
m4Minuto da hora (0 a 59)
mm04Minuto da hora preenchido com zeros (00 a 59)
s5Segundo do minuto (0 a 59)
ss05Segundo do minuto preenchido com zeros (00 a 59)
S0Fração de um segundo (precisão: 0,1, intervalo: de 0,0 a 0,9)
SS6Fração de um segundo (precisão: 0,01, intervalo: de 0,0 a 0,99)
SSS60Fração de um segundo (precisão: 0,001, intervalo: de 0,0 a 0,999)
………
SSSSSSSSS60000000Fração de um segundo (precisão máxima: 1 nanossegundo, intervalo: de 0,0 a 0,999999999)
n60000000Nano de um segundo
X+07ouZDeslocamento em horas ou
Zse o deslocamento for 0XXouXXXX+0700ouZDeslocamento em horas e minutos ou
Zse o deslocamento for 0XXXouXXXXX+07:00ouZDeslocamento em horas e minutos ou
Zse o deslocamento for 0x7Deslocamento em horas
xxouxxxx700Deslocamento em horas e minutos
xxxouxxxxx+07:00Deslocamento 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