TIMESTAMP_NTZ
-Typ
Gilt für: Databricks SQL Databricks Runtime 13.3 LTS und höher
Stellt Werte dar, die sich aus Werten der Felder Jahr, Monat, Tag, Stunde, Minute und Sekunde zusammensetzen. Alle Vorgänge werden ohne Berücksichtigung einer Zeitzone ausgeführt.
Dieses Feature befindet sich in der Public Preview. Im Abschnitt Hinweise finden Sie Informationen zu nicht unterstützten Features.
Um dieses Feature in Delta Lake zu verwenden, müssen Sie die Unterstützung für die Tabelle aktivieren. Die Featureunterstützung wird automatisch aktiviert, wenn Sie eine neue Delta-Tabelle mit einer Spalte vom Typ TIMESTAMP_NTZ
erstellen. Sie wird nicht automatisch aktiviert, wenn Sie einer vorhandenen Tabelle eine Spalte vom Typ TIMESTAMP_NTZ
hinzufügen. Um die Unterstützung für TIMESTAMP_NTZ
-Spalten zu aktivieren, muss die Unterstützung für das Feature explizit für die vorhandene Tabelle aktiviert werden.
Aktivieren Sie Unterstützung für Upgrades Ihres Tabellenprotokolls. Weitere Informationen finden Sie unter Wie verwaltet Azure Databricks die Kompatibilität von Delta Lake-Features?. Mit dem folgenden Befehl aktivieren Sie dieses Feature:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.feature.timestampNtz' = 'supported')
Syntax
TIMESTAMP_NTZ
Grenzwerte
Die Spanne der Zeitstempel, die unterstützt werden, reicht von -290308-12-21 BCE 19:59:06
bis +294247-01-10 CE 04:00:54
.
Literale
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]' }
+
oder-
: Ein optionales Zeichen.-
gibt BCE an,+
gibt CE (Standard) an.yyyy
: Ein Jahr, das mindestens vier Ziffern umfasst.[m]m
: Ein ein- oder zweistelliger Monat zwischen 01 und 12.[d]d
: Ein ein- oder zweistelliger Tag zwischen 01 und 31.h[h]
: Eine ein- oder zweistellige Stunde zwischen 00 und 23.m[m]
: Eine ein- oder zweistellige Minute zwischen 00 und 59.s[s]
: Eine ein- oder zweistellige Sekunde zwischen 00 und 59.[ms][ms][ms][us][us][us]
: Bis zu 6 Ziffern von Sekundenbruchteilen.
Wenn die Monats- oder Tageskomponenten nicht angegeben sind, wird standardmäßig 1 verwendet. Wenn Stunden-, Minuten- oder Sekundenkomponenten nicht angegeben sind, wird standardmäßig 0 verwendet.
Wenn das Literal keinen ordnungsgemäßen Zeitstempel darstellt, löst Azure Databricks einen Fehler aus.
Hinweise
Der Befehl TIMESTAMP_NTZ
weist folgende Einschränkungen auf:
- Die Photon-Unterstützung erfordert Databricks Runtime 15.4 und höher.
- Nicht unterstützt in Databricks-Datenquellen, die in Power BI, Tableau, Databricks-JDBC/-ODBC-Treibern oder den Open-Source-Treibern für Databricks verwendet werden.
- Nicht unterstützt in Delta Sharing in Databricks Runtime 14.0 und niedriger.
- Der Typ
TIMESTAMP_NTZ
wird in Dateiquellen unterstützt, einschließlich Delta/Parquet/ORC/AVRO/JSON/CSV. Es gibt jedoch eine Einschränkung beim Schemarückschluss für JSON-/CSV-Dateien mit TIMESTAMP_NTZ-Spalten. Aus Gründen der Abwärtskompatibilität ist der standardmäßige abgeleitete Zeitstempeltyp vomspark.read.csv(...)
oderspark.read.json(...)
vom Typ TIMESTAMP und nicht TIMESTAMP_NTZ.
Beispiele
> 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