TIMESTAMP-Typ

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Stellt Werte dar, die sich aus Feldern für Jahr, Monat, Tag, Stunde, Minute und Sekunde mit der lokalen Zeitzone der Sitzung zusammensetzen. Der Zeitstempelwert stellt einen absoluten Zeitpunkt dar.

Syntax

TIMESTAMP [ (p) ] | TIMESTAMP_LTZ [ (p) ]
  • 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(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 GMT bis +294247-01-10 CE 04:00:54 GMT.

Note

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

Literale

TIMESTAMP timestampString

TIMESTAMP_LTZ 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][zoneId]' }
  • + 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(9) Literal zu konstruieren.

zoneId:

  • Z – Zulu-Zeitzone UTC+0
  • +|-[h]h:[m]m
  • Eine ID mit einem der Präfixe UTC+, UTC-, GMT+, GMT-, UT+ oder UT-, und ein Suffix in den Formaten:
    • +|-h[h]
    • +|-hh[:]mm
    • +|-hh:mm:ss
    • +|-hhmmss
  • Regionbasierte Zonen-IDs im Formular <area>/<city>, z. B. Europe/Paris.

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 kein zoneId angegeben ist, wird standardmäßig die Sitzungszeitzone verwendet.

Wenn das Literal keinen ordnungsgemäßen Zeitstempel darstellt, löst Azure Databricks einen Fehler aus.

Hinweise

Zeitstempel mit lokaler Zeitzone werden normalisiert und in UTC gespeichert. Immer wenn der Wert oder ein Teil davon extrahiert wird, wird die lokale Sitzungszeitzone angewendet.

Um Spalten in Delta Lake-Tabellen zu verwenden TIMESTAMP(9) , aktivieren Sie die Zeitstempel-Präzisionsfunktion:

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

Das Aktivieren der Funktion aktualisiert das Tabellenprotokoll. Clients, die die Funktion nicht unterstützen, können die Tabelle nicht lesen oder schreiben. Siehe Delta Lake Featurekompatibilität und Protokolle.

Beispiele

> SELECT TIMESTAMP'0000';
  0000-01-01 00:00:00

> SELECT TIMESTAMP'2020-12-31';
  2020-12-31 00:00:00

> SELECT TIMESTAMP'2021-7-1T8:43:28.123456';
  2021-07-01 08:43:28.123456

> SELECT current_timezone(), TIMESTAMP'2021-7-1T8:43:28UTC+3';
  America/Los_Angeles 2021-06-30 22:43:28

> SELECT CAST('1908-03-15 10:1:17' AS TIMESTAMP)
  1908-03-15 10:01:17

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

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

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

TIMESTAMP(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.