Type TIME

S’applique à :check marqué oui Databricks SQL check marqué oui Databricks Runtime 18.3 et versions ultérieures

Important

Cette fonctionnalité est en version bêta. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.

Représente une heure de jour comprenant des valeurs de champs heure, minute et seconde, sans fuseau horaire.

Syntax

TIME | TIME(p)

p: précision facultative spécifiant le nombre de chiffres fractionnaires dans le champ de secondes. Les valeurs valides sont 0 à 6. Si p elle est omise, la précision par défaut est 6 (microsecondes).

Limites

La plage de valeurs de temps prises en charge est 00:00:00.000000 de 23:59:59.999999.

Littéraux

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: une heure à un ou deux chiffres entre 00 et (format de 24 heures) ou entre 01 et 12 (format de 12 heures avecPMAM/ ).23
  • [m]m: une minute à un ou deux chiffres entre 00 et 59.
  • [s]s: une ou deux secondes à un chiffre entre 00 et 59.
  • [f...] : jusqu’à six chiffres de fractions de seconde.
  • AM ou PM: suffixe facultatif sans respect de la casse indiquant une valeur d’horloge de 12 heures.

Le préfixe TIME n’est pas sensible à la casse.

Si le deuxième composant n’est pas spécifié, il est défini par défaut sur 0.

Si le littéral ne représente pas une heure appropriée Azure Databricks génère une erreur.

Règles de précision

Lorsque deux TIME valeurs avec des précisions différentes sont combinées (par exemple, dans COALESCE, CASE, UNION ou arithmétique), le résultat utilise l’ensemble des deux précisions.

Par exemple, le type le moins courant et TIME(3)TIME(6) est TIME(6).

Lorsque vous convertissez une TIME valeur en une précision inférieure, les fractions de secondes sont tronquées, et non arrondies :

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

Lorsque vous ajoutez ou soustrait un intervalle de temps quotidien à un TIME, le résultat utilise l’ensemble de la TIME précision et de la précision fractionnaire de l’intervalle. Par exemple, TIME(0) + INTERVAL '1.123456' SECOND retourne un TIME(6). Si le résultat tombe en dehors de [00:00:00, 24:00:00), Azure Databricks déclenche DATETIME_OVERFLOW.

Remarques

Toutes les opérations sur TIME les valeurs sont effectuées sans tenir compte du fuseau horaire.

Pour utiliser TIME des colonnes dans les tables Delta Lake, la prise en charge est activée automatiquement lorsque vous créez une table Delta avec une colonne de TIME type. Pour ajouter une TIME colonne à une table existante, vous devez d’abord activer la fonctionnalité :

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

Le TIME type présente les limitations suivantes :

  • Non pris en charge dans les colonnes générées.
  • Non pris en charge pour les index de filtre bloom.
  • Non pris en charge pour le classement Z.

Exemples

> 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