TypeTIMESTAMP_NTZ
S’applique à : Databricks SQL Databricks Runtime 13.3 LTS et versions ultérieures
Représente des valeurs comprenant les valeurs des champs année, mois, jour, heure, minute et seconde. Toutes les opérations sont effectuées sans prendre en compte aucun fuseau horaire.
Cette fonctionnalité est disponible en préversion publique. Consultez la section Notes pour connaître les fonctionnalités non prises en charge.
Pour utiliser cette fonctionnalité sur Delta Lake, vous devez activer la prise en charge de la table. La prise en charge des fonctionnalités est activée automatiquement lorsque vous créez une nouvelle table Delta avec une colonne de type TIMESTAMP_NTZ
. Elle n’est pas activée automatiquement lorsque vous ajoutez une colonne de type TIMESTAMP_NTZ
à une table existante. Pour activer la prise en charge des colonnes TIMESTAMP_NTZ
, la prise en charge de la fonctionnalité doit être explicitement activée pour la table existante.
L’activation de la prise en charge met à niveau le protocole de votre table. Consultez Comment Azure Databricks gère-t-il la compatibilité des fonctionnalités Delta Lake ?. La commande suivante permet d’activer cette fonctionnalité :
ALTER TABLE table_name SET TBLPROPERTIES ('delta.feature.timestampNtz' = 'supported')
Syntaxe
TIMESTAMP_NTZ
limites
La plage de timestamps pris en charge est de -290308-12-21 BCE 19:59:06
à +294247-01-10 CE 04:00:54
.
Littéraux
TIMESTAMP_NTZ timestampString
timestampString
{ '[+|-]yyyy[...]' |
'[+|-]yyyy[...]-[m]m' |
'[+|-]yyyy[...]-[m]m-[d]d' |
'[+|-]yyyy[...]-[m]m-[d]d ' |
'[+|-]yyyy[...]-[m]m-[d]d[T][h]h[:]' |
'[+|-]yyyy[..]-[m]m-[d]d[T][h]h:[m]m[:]' |
'[+|-]yyyy[...]-[m]m-[d]d[T][h]h:[m]m:[s]s[.]' |
'[+|-]yyyy[...]-[m]m-[d]d[T][h]h:[m]m:[s]s.[ms][ms][ms][us][us][us]' }
+
ou-
: signe facultatif.-
indique BCE,+
indique CE (valeur par défaut).yyyy
: année comprenant au moins quatre chiffres.[m]m
: mois à un ou deux chiffres entre 01 et 12.[d]d
: jour à un ou deux chiffres entre 01 et 31.h[h]
: jour à un ou deux chiffres entre 00 et 23.m[m]
: mois à un ou deux chiffres entre 00 et 59.s[s]
: seconde à ou deux chiffres entre 00 et 59.[ms][ms][ms][us][us][us]
: jusqu’à six chiffres de fractions de seconde.
Si les composants Mois ou Jour ne sont pas spécifiés, leur valeur par défaut est 1. Si les composants Heure, Minute ou Seconde ne sont pas spécifiés, leur valeur par défaut est 0.
Si le littéral ne représente pas un horodatage correct, Azure Databricks déclenche une erreur.
Notes
La commande TIMESTAMP_NTZ
a les limitations suivantes :
- La prise en charge de Photon nécessite Databricks Runtime 15.4 et versions ultérieures.
- Non pris en charge dans les sources de données Databricks utilisées dans Power BI, Tableau, les pilotes Databricks JDBC/ODBC ou les pilotes Databricks open source.
- Non pris en charge dans Delta Sharing dans Databricks Runtime 14.0 et versions antérieures.
- Le type
TIMESTAMP_NTZ
est pris en charge dans les sources de fichiers, notamment Delta/Parquet/ORC/AVRO/JSON/CSV. Toutefois, l’inférence du schéma est limitée pour les fichiers JSON/CSV contenant des colonnes TIMESTAMP_NTZ. Pour la compatibilité descendante, le type d’horodatage déduit par défaut despark.read.csv(...)
ouspark.read.json(...)
sera le type TIMESTAMP au lieu de TIMESTAMP_NTZ.
Exemples
> SELECT TIMESTAMP_NTZ'0000';
0000-01-01 00:00:00
> SELECT TIMESTAMP_NTZ'2020-12-31';
2020-12-31 00:00:00
> SELECT TIMESTAMP_NTZ'2021-7-1T8:43:28.123456';
2021-07-01 08:43:28.123456
> SELECT current_timezone(), CAST(TIMESTAMP '2021-7-1T8:43:28' as TIMESTAMP_NTZ);
America/Los_Angeles 2021-07-01 08:43:28
> SELECT CAST('1908-03-15 10:1:17' AS TIMESTAMP_NTZ)
1908-03-15 10:01:17
> SELECT TIMESTAMP_NTZ'+10000';
+10000-01-01 00:00:00