Quando você insere a consulta no SQL Editor ou cria um cálculo, você usa sintaxe do Presto SQL. Para ajustar ou realizar cálculos em valores de data ou carimbo de data/hora, você pode achar essas funções comuns úteis.
Observação: As variáveis de tempo de execução em cadeias, como as usadas para transformações de data e hora, usam o Python strftime em vez do Presto SQL.
AT TIME ZONE
Para converter o fuso horário de um registro de data e hora, use o operador AT TIME ZONE. Por exemplo:
SELECT cast(timestamp '2020-10-31 01:00 UTC' as VARCHAR) 2020-10-31 01:00:00.000 UTC SELECT cast(timestamp '2020-10-31 01:00 UTC' AT TIME ZONE 'America/Los_Angeles' as VARCHAR) 2020-10-30 18:00:00.000 America/Los_Angeles
Dica: Na maioria das áreas, você pode usar America/Los_Angeles para o fuso horário do Pacífico, America/Denver para Mountain, America/Chicago para Central e America/New_York para Eastern.
CURRENT_DATE
Para retornar a data em que a consulta é executada, use a função CURRENT_DATE. Por exemplo, SELECT CURRENT_DATE().
DATA
Para converter um valor em um valor de data, use a função DATE como DATE(value).
DATE_ADD
Para adicionar um valor de unidade de intervalo a uma data ou carimbo de data/hora, use a função DATE_ADD como DATE_ADD(unit, value, timestamp). Para unit, DATE_ADD suporta:
milissegundossegundoMinutoHoradiasemanamêstrimestreano
Por exemplo, SELECT DATE_ADD('day', 10, "2020-06-15") retorna 2020-06-25.
Observação: Para analisar uma cadeia de caracteres formatada em IS08601 como o valor da data, use a função FROM_ISO8601_DATE, como FROM_ISO8601_DATE('2020-06-15').
DATE_DIFF
Para retornar a diferença de dois valores de data ou carimbo de data/hora, use a função DATE_DIFF como DATE_DIFF(unit, timestamp1, timestamp 2). Para a unidade , DATE_DIFF suporta os mesmos valores que DATE_ADD. Por exemplo, SELECT DATE_DIFF('day', "2020-06-15", "2020-06-25") retorna 10.
Observe que DATE_DIFF só se aplica a objetos Date e talvez você precise converter outros objetos para que essa função funcione.
Observação: Para analisar uma cadeia de caracteres no formato IS08601 como valor de data, use a função FROM_ISO8601_DATE, como FROM_ISO8601_DATE('2020-06-15').
FORMATO_DATA
Para retornar um valor de data ou de carimbo de data/hora em um formato definido, use a função DATE_FORMAT como DATE_FORMAT(timestamp, format). Para o formato , DATE_FORMAT oferece suporte a uma combinação desses valores:
| Formatação | Descrição |
|---|---|
%a |
Nome abreviado do dia da semana, deSun a Sat |
%b |
Nome abreviado do mês, de Jan a Dez |
%c |
Valor numérico do mês, de 1 a 12 |
%D
|
Numeric day of the month with its suffix, such as 1st,
2nd, 3rd...
|
%d |
Dia numérico do mês como um número de dois dígitos, de 01 a 31 |
%e |
Dia numérico do mês, de 1 a 31 |
%f |
Milissegundo, de 000000 a 999000 para impressão; de 0 a 999999999 para análise |
%H |
Hora do relógio de 24 horas como um número de dois dígitos, de 00 a 23 |
%h ou %I |
Hora do relógio de 12 horas como um número de dois dígitos, de 00 a 12 |
%i |
Minuto, de 00 a 59 |
%j |
Dia do ano como um número de três dígitos, de 000 a 366 |
%k |
Hora do relógio de 24 horas, de 0 a 23 |
%l |
Hora do relógio de 12 horas, de 0 a 12 |
%M |
Nome do mês, de Janeiro a Dezembro |
%m |
Valor numérico do mês como um número de dois dígitos, de 01 a 12 |
%p |
AM ou PM do relógio de 12 horas |
%r |
Hora no relógio de 12 horas, como hh:mm:ss seguido por AM ou PM |
%s ou %S |
Segundo, de 00 a 59 |
%T |
Hora no relógio de 24 horas, como hh:mm:ss |
%U
|
Week of the year, from 00 to 53,
where Sunday is the first day of the week
|
%u
|
Week of the year, from 00 to 53,
where Monday is the first day of the week
|
%V
|
Week of the year, from 01 to 53,
where Sunday is the first day of the week; used with %X
|
%v |
Semana do ano, de 01 a 53, em que segunda-feira é o primeiro dia da semana; usado com %x |
%W |
Nome do dia da semana, deDomingo a Sábado |
%w
|
Day of the week, from 0 to 6,
where Sunday is the first day of the week
|
%X
|
Year for when Sunday is the first day of the week; used with %V
|
%x |
Ano para quando a segunda-feira é o primeiro dia da semana; usado com %v |
%Y |
Ano, como um número de quatro dígitos |
%y |
Ano, como um número de dois dígitos Nota: Ao analisar, |
%% |
O caractere literal % |
Observação: Para retornar o dia da semana como um número, de 1 a 7, use a função DAY_OF_WEEK.
DIA
Para retornar o dia do mês - como um número de 1 a 31 - de uma data ou carimbo de data/hora, use a função DAY como DAY(date_value). Por exemplo, SELECT DAY("2020-06-15") retorna 15.
DAY_OF_WEEK
Para retornar o dia da semana - como um número de 1 para segunda-feira a 7 para domingo - a partir de uma data ou carimbo de data/hora, use a função DAY_OF_WEEK como DAY_OF_WEEK(date_value).
EOMONTH
Para retornar o número do último dia do mês a partir de uma data ou carimbo de data/hora, use a função EOMONTH, como EOMONTH(date_value, month_number_value).
FROM_ISO8601_DATE
Para analisar uma cadeia de caracteres no formato ISO8601 como uma data, use a função FROM_ISO8601_DATE, como FROM_ISO8601_DATE(date_value).
Intervalo
Para adicionar ou subtrair valores de unidade de intervalo para uma data ou carimbo de data/hora, use a função INTERVAL com um operador + ou -, como +/- INTERVAL value unit. Para unit, INTERVAL suporta os mesmos valores que DATE_ADD. Por exemplo:
-
DATE '2020-08-08' + INTERVALO '2' diaretorna 2020-08-10. -
TIMESTAMP '2020-08-08 01:00' + INTERVALO '29' horaretorna 2020-08-09 06:00:00.000. -
INTERVALO '2' dia + INTERVALO '3' horaretorna 2 03:00:00.000. -
TIMESTAMP '2020-10-31 01:00' - INTERVALO '1' mêsretorna 2020-09-30 01:00:00.000.
Mês
Para retornar o mês - como um número de 1 a 12 - de uma data ou carimbo de data/hora, use a função MONTH como MONTH(date_value). Por exemplo, SELECT MONTH("2020-06-15") retorna 6.
AGORA
Para retornar o registro de data e hora quando a consulta for executada, use a função NOW. Por exemplo, SELECT NOW().
trimestre
Para retornar o trimestre do ano - como um número de 1 a 4 - de uma data ou carimbo de data/hora, use a função QUARTER como QUARTER(date_value). Por exemplo, SELECT QUARTER("2020-06-15") retorna 2.
ANO
Para retornar o ano - como um número de 1000 a 9990 - de uma data ou carimbo de data/hora, use a função YEAR como YEAR(date_value). Por exemplo, SELECT YEAR("2020-06-15") retorna 2020.