Tipo TIME

Aplica-se a:assinalado Databricks SQL assinalado sim Databricks Runtime 18 e superiores

Note

O Databricks Runtime 18 é mais recente do que o Databricks Runtime 18.0, 18.1 e 18.2. Funcionalidades que anteriormente seriam enviadas como versões numeradas posteriores agora são enviadas como atualizações datadas do Databricks Runtime 18. Para mais detalhes, consulte Sobre as notas de lançamento unificadas.

Importante

Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Visualizações . Ver Gerir as pré-visualizações de Azure Databricks.

Representa uma hora do dia composta pelos valores dos 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 dos segundos. Os valores válidos são 0 para 6. Se p for omitido, a precisão padrão é 6 (microssegundos).

Limits

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

Literais

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 hora de um ou dois dígitos 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 segundos entre 00 e 59.
  • [f...]: Até 6 dígitos de frações de segundo.
  • AM ou PM: Um sufixo opcional insensível a maiúsculas e maiúsculas que indica um valor de relógio de 12 horas.

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

Se o segundo componente não for especificado, por defeito, é 0.

Se o literal não representar um tempo próprio, o Azure Databricks gera 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 precisão mais ampla das duas.

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

Quando se conjura um TIME valor com menor precisão, os segundos fracionados são truncados, não arredondados:

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

Quando se soma ou subtrai um intervalo diurno a um TIME, o resultado utiliza a precisão mais ampla TIME e a precisão fracionária do intervalo. Por exemplo, TIME(0) + INTERVAL '1.123456' SECOND retorna um TIME(6). Se o resultado ficar fora de [00:00:00, 24:00:00), Azure Databricks aumenta DATETIME_OVERFLOW.

Notes

Todas as operações sobre TIME valores são realizadas sem considerar qualquer fuso horário.

Para usar TIME colunas nas tabelas Delta Lake, o suporte é ativado automaticamente quando cria uma nova tabela Delta com uma coluna do TIME tipo. Para adicionar uma TIME coluna a uma tabela existente, deve primeiro ativar a funcionalidade:

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

O TIME tipo tem as seguintes limitações:

  • Não suportado em colunas geradas.
  • Não é suportado para índices de filtro de bloom.
  • Não é suportado para Z-Ordering.

Examples

> 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