Funções de tempo no SQL padrão

O BigQuery é compatível com as seguintes funções TIME.

CURRENT_TIME

CURRENT_TIME()

Descrição

Retorna a hora atual como um objeto de TIME.

Tipos de dados retornados

TIME

Exemplo

SELECT CURRENT_TIME() as now;

+----------------------------+
| now                        |
+----------------------------+
| 15:31:38.776361            |
+----------------------------+

TIME

1. TIME(hour, minute, second)
2. TIME(timestamp, [timezone])
3. TIME(datetime)

Descrição

  1. Cria um objeto TIME usando valores INT64 que representam a hora, o minuto e o segundo.
  2. Cria um objeto TIME usando um objeto TIMESTAMP. Aceita um parâmetro opcional para especificar um fuso horário. Se nenhum fuso horário for especificado, será usado o padrão UTC.
  3. Cria um objeto TIME usando um objeto DATETIME.

Tipos de dados retornados

TIME

Exemplo

SELECT
  TIME(15, 30, 00) as time_hms,
  TIME(TIMESTAMP "2008-12-25 15:30:00+08", "America/Los_Angeles") as time_tstz;
+----------+-----------+
| time_hms | time_tstz |
+----------+-----------+
| 15:30:00 | 23:30:00  |
+----------+-----------+
SELECT
  TIME(DATETIME "2008-12-25 15:30:00.000000") AS time_dt;
+----------+
| time_dt  |
+----------+
| 15:30:00 |
+----------+

TIME_ADD

TIME_ADD(time_expression, INTERVAL INT64_expr part)

Descrição

Adiciona unidades INT64_expr de part ao objeto TIME.

TIME_ADD aceita os seguintes valores de part:

  • MICROSECOND
  • MILLISECOND
  • SECOND
  • MINUTE
  • HOUR

Essa função ajusta automaticamente os valores quando recaem fora do limite de 00:00:00 a 24:00:00. Por exemplo, se você adicionar uma hora a 23:30:00, o valor retornado será 00:30:00 .

Tipos de dados retornados

TIME

Exemplo

SELECT
  TIME "15:30:00" as original_time,
  TIME_ADD(TIME "15:30:00", INTERVAL 10 MINUTE) as later;

+-----------------------------+------------------------+
| original_time               | later                  |
+-----------------------------+------------------------+
| 15:30:00                    | 15:40:00               |
+-----------------------------+------------------------+

TIME_SUB

TIME_SUB(time_expression, INTERVAL INT_expr part)

Descrição

Subtrai as unidades INT64_expr de part do objeto TIME.

TIME_SUB aceita os seguintes valores de part:

  • MICROSECOND
  • MILLISECOND
  • SECOND
  • MINUTE
  • HOUR

Essa função ajusta automaticamente os valores quando recaem fora do limite de 00:00:00 a 24:00:00. Por exemplo, se você subtrair uma hora de 00:30:00, o valor retornado será 23:30:00 .

Tipos de dados retornados

TIME

Exemplo

SELECT
  TIME "15:30:00" as original_date,
  TIME_SUB(TIME "15:30:00", INTERVAL 10 MINUTE) as earlier;

+-----------------------------+------------------------+
| original_date                | earlier                |
+-----------------------------+------------------------+
| 15:30:00                    | 15:20:00               |
+-----------------------------+------------------------+

TIME_DIFF

TIME_DIFF(time_expression, time_expression, part)

Descrição

Retorna o número de intervalos part inteiros especificados entre dois objetos TIME. Lança um erro se o cálculo estourar o tipo de resultado, como se a diferença em microssegundos entre os dois objetos de tempo estourasse um valor INT64.

TIME_DIFF aceita os seguintes valores de part:

  • MICROSECOND
  • MILLISECOND
  • SECOND
  • MINUTE
  • HOUR

Tipos de dados retornados

INT64

Exemplo

SELECT
  TIME "15:30:00" as first_time,
  TIME "14:35:00" as second_time,
  TIME_DIFF(TIME "15:30:00", TIME "14:35:00", MINUTE) as difference;

+----------------------------+------------------------+------------------------+
| first_time                 | second_time            | difference             |
+----------------------------+------------------------+------------------------+
| 15:30:00                   | 14:35:00               | 55                     |
+----------------------------+------------------------+------------------------+

TIME_TRUNC

TIME_TRUNC(time_expression, part)

Descrição

Trunca um objeto TIME para a granularidade de part.

TIME_TRUNC aceita os seguintes valores de part:

  • MICROSECOND
  • MILLISECOND
  • SECOND
  • MINUTE
  • HOUR

Tipos de dados retornados

TIME

Exemplo

SELECT
  TIME "15:30:00" as original,
  TIME_TRUNC(TIME "15:30:00", HOUR) as truncated;

+----------------------------+------------------------+
| original                   | truncated              |
+----------------------------+------------------------+
| 15:30:00                   | 15:00:00               |
+----------------------------+------------------------+

FORMAT_TIME

FORMAT_TIME(format_string, time_object)

Descrição Formata um objeto TIME de acordo com o format_string especificado. Consulte Elementos de formatos compatíveis de TIME para ver uma lista de elementos de formato aceitos por essa função.

Tipos de dados retornados

STRING

Exemplo

SELECT FORMAT_TIME("%R", TIME "15:30:00") as formatted_time;

+----------------+
| formatted_time |
+----------------+
| 15:30          |
+----------------+

PARSE_TIME

PARSE_TIME(format_string, string)

Descrição

Usa um format_string e uma string para retornar um objeto TIME. Consulte Elementos de formatos compatíveis de TIME para ver uma lista de elementos de formato aceitos por essa função.

Ao usar PARSE_TIME, tenha em mente os seguintes itens:

  • Campos não especificados. Qualquer campo não especificado é inicializado em 00:00:00.0. Por exemplo, se seconds não for especificado, o padrão será 00 e assim por diante.
  • Espaço em branco. Um ou mais espaços em branco consecutivos na string de formato correspondem a zero ou mais espaços em branco consecutivos na string TIME. Além disso, espaços em branco à esquerda e à direita na string TIME sempre são permitidos, mesmo que não estejam na string de formato.
  • Precedência de formato. Quando dois ou mais elementos de formato têm informações de sobreposição, o último geralmente modifica os anteriores.

Tipos de dados retornados

TIME

Exemplo

SELECT PARSE_TIME("%H", "15") as parsed_time;

+-------------+
| parsed_time |
+-------------+
| 15:00:00    |
+-------------+

Elementos de formatos compatíveis de TIME

Salvo indicação em contrário, as funções TIME que usam strings de formato aceitam os seguintes elementos:

Elemento de formato Descrição
%H A hora em um relógio de 24 horas como número decimal (00-23).
%I A hora em um relógio de 12 horas como número decimal (01-12).
%j O dia do ano como número decimal (001-366).
%k A hora em um relógio de 24 horas como número decimal (0-23). Dígitos únicos são precedidos por um espaço.
%l A hora em um relógio de 12 horas como número decimal (1-12). Dígitos únicos são precedidos por um espaço.
%M O minuto como número decimal (00-59).
%n Um caractere de nova linha.
%P am ou pm
%p AM ou PM.
%R A hora no formato %H:%M.
%r A hora em um relógio de 12 horas usando a notação AM/PM.
%S O segundo como número decimal (00-60).
%T A hora no formato %H:%M:%S.
%t Um caractere de tabulação.
%X A representação da hora no formato HH:MM:SS.
%% Um único caractere %.
%E#S Segundos com # dígitos de precisão fracionária.
%E*S Segundos com precisão fracionária total (um literal "*").
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.