Tipo de TIME

Aplica-se a:check marked yes Databricks SQL check marked yes Databricks Runtime 18.3 and above

Importante

Esse recurso está em Beta. Os administradores do workspace podem controlar o acesso a esse recurso na página Visualizações . Consulte Gerenciar visualizações do Azure Databricks.

Representa uma hora do dia que inclui valores de campos hora, minuto e segundo, sem fuso horário.

Syntax

TIME | TIME(p)

p: uma precisão opcional que especifica o número de dígitos fracionários no campo de segundos. Os valores válidos são 0 para 6. Se p for omitido, a precisão padrão será 6 (microssegundos).

Limits

O intervalo de valores de tempo com suporte é 00:00:00.000000 para 23:59:59.999999.

Literals

TIME timeString

timeString
{ '[h]h:[m]m' |
  '[h]h:[m]m:[s]s' |
  '[h]h:[m]m:[s]s.[f...]' |
  '[h]h:[m]m AM|PM' |
  '[h]h:[m]m:[s]s AM|PM' |
  '[h]h:[m]m:[s]s.[f...] AM|PM' }
  • [h]h: uma ou duas horas de dígito entre 00 e 23 (formato de 24 horas) ou entre 01 e 12 (formato de 12 horas com AM/PM).
  • [m]m: um minuto de um ou dois dígitos entre 00 e 59.
  • [s]s: um ou dois dígitos de segundo entre 00 e 59.
  • [f...]: até 6 dígitos de frações de segundo.
  • AM ou PM: um sufixo opcional que não diferencia maiúsculas de minúsculas que indica um valor de relógio de 12 horas.

O prefixo TIME não diferencia maiúsculas e minúsculas.

Se o segundo componente não for especificado, o padrão 0será .

Se o literal não representar uma hora adequada Azure Databricks gerará um erro.

Regras de precisão

Quando dois TIME valores com precisões diferentes são combinados (por exemplo, em COALESCE, CASE, UNION ou aritmética), o resultado usa a maior das duas precisões.

Por exemplo, o tipo menos comum de TIME(3) e TIME(6) é TIME(6).

Quando você converte um TIME valor em uma precisão mais baixa, os segundos fracionários são truncados, não arredondados:

> SELECT CAST(TIME'12:30:45.987654' AS TIME(3));
  12:30:45.987

Quando você adiciona ou subtrai um intervalo de dia a um TIME, o resultado usa o maior da TIME precisão e a precisão fracionária do segundo do intervalo. Por exemplo, TIME(0) + INTERVAL '1.123456' SECOND retorna TIME(6). Se o resultado ficar fora [00:00:00, 24:00:00), Azure Databricks aumentará DATETIME_OVERFLOW.

Anotações

Todas as operações em TIME valores são executadas sem levar em conta qualquer fuso horário.

Para usar TIME colunas em tabelas delta lake, o suporte é habilitado automaticamente quando você cria uma nova tabela Delta com uma coluna de TIME tipo. Para adicionar uma TIME coluna a uma tabela existente, primeiro você deve habilitar o recurso:

ALTER TABLE table_name SET TBLPROPERTIES ('delta.feature.timeType' = 'supported')

O TIME tipo tem as seguintes limitações:

  • Não há suporte em colunas geradas.
  • Não há suporte para índices de filtro de flores.
  • Não há suporte para o Z-Ordering.

Exemplos

> SELECT TIME'10:30:00';
  10:30:00

> SELECT TIME'08:15';
  08:15:00

> SELECT TIME'23:59:59.123456';
  23:59:59.123456

> SELECT CAST('14:30:00' AS TIME);
  14:30:00

> SELECT CAST('09:15:30.5' AS TIME(3));
  09:15:30.500

> SELECT current_time();
  16:57:04.304361

> SELECT make_time(6, 30, 45.887);
  06:30:45.887000