TIME tipo

Si applica a:check contrassegnato come sì controllo SQL di Databricks contrassegnato come sì Databricks Runtime 18.3 e versioni successive

Importante

Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.

Rappresenta un'ora del giorno che comprende valori di campi ora, minuto e secondo, senza un fuso orario.

Syntax

TIME | TIME(p)

p: precisione facoltativa che specifica il numero di cifre frazionarie nel campo secondi. I valori validi sono 0 .6 Se p viene omesso, la precisione predefinita è 6 (microsecondi).

Limits

L'intervallo di valori di tempo supportati è 00:00:00.000000 .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: un'ora di una o due cifre tra 00 e (formato di 24 ore) o tra 01 e 12 (formato di 12 ore con AM/PM).23
  • [m]m: un minuto di una o due cifre compreso tra 00 e 59.
  • [s]s: un secondo di una o due cifre tra 00 e 59.
  • [f...]: fino a 6 cifre di frazioni di secondo.
  • AM o PM: suffisso facoltativo senza distinzione tra maiuscole e minuscole che indica un valore di clock di 12 ore.

Il prefisso TIME non fa distinzione tra maiuscole e minuscole.

Se il secondo componente non viene specificato, per impostazione predefinita è 0.

Se il valore letterale non rappresenta un'ora corretta Azure Databricks genera un errore.

Regole di precisione

Quando due TIME valori con precisioni diverse vengono combinati (ad esempio, in COALESCE, CASE, UNION o aritmetica), il risultato usa la più ampia delle due precisioni.

Ad esempio, il tipo meno comune di TIME(3) e TIME(6) è TIME(6).

Quando si esegue il cast di un TIME valore a una precisione inferiore, i secondi frazionari vengono troncati, non arrotondati:

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

Quando si aggiunge o sottrae un intervallo di tempo di giorno a , TIMEil risultato usa la precisione più ampia TIME e la precisione frazionaria della seconda precisione dell'intervallo. Ad esempio, TIME(0) + INTERVAL '1.123456' SECOND restituisce un TIME(6). Se il risultato non rientra [00:00:00, 24:00:00), Azure Databricks genera DATETIME_OVERFLOW.

Note

Tutte le operazioni sui TIME valori vengono eseguite senza prendere in considerazione alcun fuso orario.

Per usare TIME le colonne nelle tabelle Delta Lake, il supporto viene abilitato automaticamente quando si crea una nuova tabella Delta con una colonna di TIME tipo . Per aggiungere una TIME colonna a una tabella esistente, è prima necessario abilitare la funzionalità:

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

Il TIME tipo presenta le limitazioni seguenti:

  • Non supportato nelle colonne generate.
  • Non supportato per gli indici di filtro bloom.
  • Non supportato per l'ordinamento Z.

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