Freigeben über


try_parse_timestamp-Funktion

Gilt für:check marked yes Databricks Runtime 18.1 und höher

Wenn expr es sich um eine Zeichenfolge handelt, analysiert sie entsprechend TIMESTAMP dem ersten Abgleichsmuster in der angegebenen Liste von Formaten oder gibt zurück NULL , wenn kein Muster übereinstimmt. Wenn expr es sich um einen numerischen Typ handelt, analysiert es als Unix-Zeitstempel. Ungültige oder nicht übereinstimmende expr Rückgaben NULL , anstatt einen Fehler zu auslösen.

Syntax

try_parse_timestamp(expr [, { pattern [...] } ])

Argumente

  • Ausdruck: Eine Zeichenfolge oder ein numerischer Wert, der in eine TIMESTAMPAnalyse umgewandelt werden soll. Akzeptierte Typen sind:
    • TINYINT SMALLINT INT BIGINT
    • 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. Informationen zum Mustersymbolverweis und zur Liste vordefinierter Musterlisten finden Sie unter "Musterreferenz in parse_timestamp Funktion".

Rückkehr

A TIMESTAMP, oder NULL wenn die expr nicht analysiert werden kann.

Wenn es sich um expr eine Zeichenfolge handelt und keines der Muster übereinstimmt, gibt die Funktion zurück NULL.

Wenn die expr Zahl numerisch ist und nicht als gültiger Unix-Zeitstempel interpretiert werden kann (z. B. Überlauf), gibt die Funktion zurück NULL.

Wenn der Formatparameter falsch formatiert ist (ungültiges Muster oder unbekannte Musterliste), löst die Funktion weiterhin einen Fehler aus. nur Analysefehler für die Rückgabe des expr Werts NULL.

Ist expr dies NULLder Wert, gibt die Funktion zurück NULL.

Hinweise

  • Wenn die Musterliste Werte enthält NULL , werden sie ignoriert. Wenn alle bereitgestellten Muster vorhanden sind NULL, lautet NULLdas Ergebnis .
  • Wenn der Zeitstempel mit einem Muster übereinstimmt, das keine Zeitzoneninformationen enthält, wird er in der Sitzungszeitzone analysiert.

Fehlerbedingungen

Beispiele

-- Parse timestamp according to default pattern list
> SELECT try_parse_timestamp('2024-12-09T19:30:01');
 2024-12-09 19:30:01.000

-- Invalid date returns NULL
> SELECT try_parse_timestamp('2016-12-32');
 NULL

-- Bad input returns NULL instead of error
> SELECT try_parse_timestamp('bad input');
 NULL

-- Invalid pattern still raises an error (does not return NULL)
> SELECT try_parse_timestamp('2023', 'QQQQ');
 Error: INVALID_PARAMETER_VALUE.PATTERN

-- Extend the default pattern list with custom patterns
> SELECT try_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