Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks Runtime 18.1 und höher
Wenn expr es sich um eine Zeichenfolge handelt, analysiert sie gemäß TIMESTAMP dem ersten übereinstimmenden Muster in der angegebenen Liste der Formate. Mindestens ein Format kann auf eine vordefinierte Liste von Formaten verweisen. Wenn expr es sich um einen numerischen Typ handelt, analysiert es als Unix-Zeitstempel.
Syntax
parse_timestamp(expr [, { pattern [...] } ])
Argumente
-
Ausdruck: Eine Zeichenfolge oder ein numerischer Wert, der in eine
TIMESTAMPAnalyse umgewandelt werden soll. Akzeptierte Typen sind:-
TINYINTSMALLINTINTBIGINT -
FLOAT,DOUBLE -
DECIMAL(bis zu 18 Genauigkeit) STRING
-
-
Muster: Eine optionale Liste von Zeitstempelmustern oder ein Verweis auf eine vordefinierte Liste, z
#iso8601. B. oder#rfc3339. Die Zeitstempelmuster müssen eine konstante Zeichenfolge sein. Wenn kein Muster angegeben wird, entspricht es der Angabe#extended.
Rückkehr
Eine TIMESTAMP darstellung der analysierten expr.
Wenn es expr sich um eine Zeichenfolge handelt, wird sie gemäß dem ersten Abgleichsmuster analysiert. Wenn keines der Muster übereinstimmt, löst die Funktion einen Fehler aus.
Wenn dies expr numerisch ist, wird sie immer als Unix-Zeitstempel analysiert.
Ist expr dies NULLder Wert, gibt die Funktion zurück NULL.
Verwenden Sie try_parse_timestamp die Funktion, um anstelle eines Fehlers zurückzugebenNULL, wenn die Analyse fehlschlägt.
Hinweise
- Wenn die Musterliste Werte enthält
NULL, werden sie ignoriert. Wenn alle bereitgestellten Muster vorhanden sindNULL, lautetNULLdas Ergebnis . - Wenn der Zeitstempel mit einem Muster übereinstimmt, das keine Zeitzoneninformationen enthält, wird er in der Sitzungszeitzone analysiert.
Fehlerbedingungen
- CANNOT_PARSE_TIMESTAMP
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- INVALID_PARAMETER_VALUE. MUSTER
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
Beispiele
-- Parse timestamp according to default pattern list
> SELECT parse_timestamp('2024-12-09T19:30:01');
2024-12-09 19:30:01.000
-- Parse a microsecond epoch timestamp using the unix pattern list
> SELECT parse_timestamp('1733772601000000', '#unix');
2024-12-09 19:30:01.000
-- Bad `expr` that does not match any pattern
> SELECT parse_timestamp('bad input');
Error: CANNOT_PARSE_TIMESTAMP
-- Use try_parse_timestamp to return NULL instead of error
> SELECT try_parse_timestamp('bad input');
NULL
-- Extend the default pattern list with custom patterns
> SELECT parse_timestamp(col, "#extended", "dd MMM, yyyy", "MMM d; yy") FROM VALUES ('2024-12-01'), ('02 Dec, 2024'), ('DEC 3; 24') AS t(col)
2024-12-01 00:00:00.000
2024-12-02 00:00:00.000
2024-12-03 00:00:00.000
Musterreferenz
parse_timestamp und try_parse_timestamp die Funktion verwenden einen Mustersatz, der sich auf verschiedene Arten vom standardmäßigen Datums-/Uhrzeitmuster unterscheidet, das von to_timestamp. In der folgenden Tabelle sind alle Mustersymbole aufgeführt, und es wird aufgeführt, ob die einzelnen Mustersymbole unterstützt werden:
| Symbol | Bedeutung | Beispiele | Support |
|---|---|---|---|
| U | Unix | Siehe Hinweis unten | Unterstützt |
| G | Ära | n. Chr.; Nach Christus | Nicht unterstützt |
| y | Jahr | 2020; 20 | Unterstützt |
| D | Tag des Jahres | 189 | Nicht unterstützt |
| M/L | Monat des Jahres | 7; 07; Jul; Juli | Unterstützt |
| d | Tag des Monats | 28 | Unterstützt |
| Q/q | Quartal des Jahres | 3; 03; Q3; 3. Quartal | Nicht unterstützt |
| E | Wochentag | DI; Dienstag | Unterstützt |
| F | Ausgerichteter Wochentag im Monat | 3 | Nicht unterstützt |
| a | Ante meridiem/post meridiem (AM/PM) | nachmittags | Unterstützt |
| h | Stunde im 12-Stunden-Format, AM/PM (1–12) | 12 | Unterstützt |
| K | Stunde AM/PM (0–11) | 0 | Unterstützt |
| k | Zeitstunde des Tages (1–24) | 1 | Nicht unterstützt |
| H | Stunde des Tages (0–23) | 0 | Unterstützt |
| m | Minute der Stunde | 30 | Unterstützt |
| s | Sekunde der Minute | 55 | Unterstützt |
| S | Sekundenbruchteil | 978 | Unterstützt |
| V | Zeitzonen-ID | Amerika/Los_Angeles; Z; -08:30 | Unterstützt |
| z | Zeitzonenname | Pazifische Standardzeit; Pacific Standard Time; PST | Unterstützt |
| O | Lokalisierter Zeitzonenoffset | GMT+8; GMT+08:00; UTC-08:00 | Unterstützt |
| X | Zonenoffset 'Z' für Null | Z; -08; -0830; -08:30 | Unterstützt (1-3 Ziffern) |
| x | Zeitzonenoffset | +0000; -08; -0830; -08:30 | Unterstützt (1-3 Ziffern) |
| Z | Zeitzonenoffset | +0000; -0800; -08:00 | Unterstützt |
| # | Musterliste | #common, #iso8601 | Unterstützt |
Hinweis
Unix-Muster (U): Die #unix Musterliste analysiert Unix-Epochen-Zeitstempel. Für Datumsangaben zwischen 1971-08-03 und 3554-06-09 kann die Implementierung mehrdeutige Und analysieren Unix-Zeitstempel in Sekunden, Mikrosekunden und Nanosekunden. Datumsangaben außerhalb dieses Bereichs können nicht fälschlicherweise analysiert oder analysiert werden. Negative ganze Zahlen werden nicht unterstützt. Bruchwerte werden bis zu 9 Dezimalstellen unterstützt und werden abgeschnitten, um der Genauigkeit des Ergebnistyps zu entsprechen.
Locale: Musterplatzhalter sind nicht gebietsschemafähig. Monats- und Tagesnamen werden nur in Englisch unterstützt.
Musterlisten
Sie können eine vordefinierte Musterliste anhand des Namens übergeben (z #extended. B. , #iso8601, #unix). Die folgenden Musterlisten sind verfügbar:
- häufig gefundene Muster, die nicht durch einen Standard definiert sind
- iso8601
- rfc1036, rfc1123, rfc2822, rfc3164, rfc3339, rfc4287, rfc5322, rfc5424, rfc6265, rfc7231, rfc822, rfc850, rfc9110, rfc9557
- Unix — Unix-Epochen-Zeitstempel nur
- erweitert — Union aller oben genannten Listen; auch die Standardeinstellung, wenn kein Muster angegeben wird
- extended-dmy – Erweitert mit dmY-gebietsschemaspezifischen Formaten
- extended-mdy – Erweitert mit MDY-gebietsschemaspezifischen Formaten