TIMESTAMP_NTZ-Typ

Gilt für:mit Häkchen markiert: Ja Databricks SQL mit Häkchen markiert: Ja 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 öffentlichen Vorschau. Im Abschnitt "Notizen " 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. Siehe Delta Lake Featurekompatibilität und Protokolle. Mit dem folgenden Befehl aktivieren Sie dieses Feature:

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

Syntax

TIMESTAMP [ (p) ] WITHOUT TIME ZONE | TIMESTAMP_NTZ [ (p) ]

TIMESTAMP WITHOUT TIME ZONE gilt für Databricks Runtime 17.1 und höher.

  • p: Eine optionale Genauigkeit von 6 bis 9, die die Anzahl der Bruchteil-Sekunden-Ziffern darstellt. Der Standardwert lautet 6. Spezifizieren 9 Sie die Nanosekundenpräzision.

Important

TIMESTAMP_NTZ(p) mit Präzision 7–9 befindet sich in der Beta-Phase.

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.

Note

Wenn man an Delta oder Parquet schreibt, TIMESTAMP_NTZ(p) sind Werte mit größerer Genauigkeit 6 als auf die Jahre 1677 bis 2262 beschränkt.

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][ns][ns][ns]' }
  • + 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][ns][ns][ns]: Bis zu 9 Sekundenbruchteile. Geben Sie genau neun Bruchstellen an, um ein TIMESTAMP_NTZ(9) Literal zu konstruieren.

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 Photonunterstützung erfordert Databricks SQL oder Databricks Runtime 15.4 und höher.
  • In OpenSharing in Databricks Runtime 14.0 und darunter nicht unterstützt.
  • 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 vom spark.read.csv(...) oder spark.read.json(...) vom Typ TIMESTAMP und nicht TIMESTAMP_NTZ.

Um Spalten in einer bestehenden Delta Lake-Tabelle zu verwendenTIMESTAMP_NTZ(9), aktivieren Sie sowohl die und timestampPrecision die timestampNtz Funktionen:

ALTER TABLE table_name SET TBLPROPERTIES (
  'delta.feature.timestampNtz' = 'supported',
  'delta.feature.timestampPrecision' = 'supported'
)

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 CAST('1908-03-15 10:1:17' AS TIMESTAMP WITHOUT TIME ZONE)
  1908-03-15 10:01:17

> SELECT '1908-03-15 10:1:17'::TIMESTAMP WITHOUT TIME ZONE)
  1908-03-15 10:01:17

> SELECT TIMESTAMP_NTZ'+10000';
  +10000-01-01 00:00:00

> SELECT typeof(TIMESTAMP_NTZ'2026-08-18 14:30:45.123456789');
  TIMESTAMP_NTZ(9)

> SELECT CAST('2026-08-18 14:30:45.123456789' AS TIMESTAMP_NTZ(9));
  2026-08-18 14:30:45.123456789

TIMESTAMP_NTZ(9) Tabellenbeschränkungen

  • Eisberg-Tabellen werden nicht unterstützt.
  • Generierte Spalten in Delta-Lake-Tabellen werden nicht unterstützt.
  • Flüssigcluster-Spalten in Delta-Lake-Tabellen werden nicht unterstützt.