Delen via


try_parse_timestamp functie

Van toepassing op:controleren gemarkeerd als Ja Databricks Runtime 18.1 en hoger

Als expr dit een tekenreeks is, parseert u deze in een TIMESTAMP op basis van het eerste overeenkomende patroon in de opgegeven lijst met notaties of retourneert NULL als er geen patroon overeenkomt. Als expr dit een numeriek type is, parseert u het als een Unix-tijdstempel. Ongeldige of niet-overeenkomende expr retourneert NULL in plaats van een fout op te geven.

Syntaxis

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

Argumenten

  • expr: een tekenreeks of numerieke waarde die moet worden geparseerd in een TIMESTAMP. Geaccepteerde typen zijn:
    • TINYINT,SMALLINT,INT,BIGINT
    • FLOAT, DOUBLE
    • DECIMAL (tot 18 precisie)
    • STRING
  • patroon: Een optionele lijst met tijdstempelpatronen of een verwijzing naar een vooraf gedefinieerde lijst, zoals #iso8601 of #rfc3339. De tijdstempelpatronen moeten een constante tekenreeks zijn. Als er geen patroon is opgegeven, is dit gelijk aan het opgeven #extended. Zie Patroonreferentie in parse_timestamp functie voor de verwijzing naar het patroonsymbool en de lijst met vooraf gedefinieerde patroonlijsten.

Retouren

A TIMESTAMP, of NULL als het expr niet kan worden geparseerd.

Als de expr tekenreeks een tekenreeks is en geen van de patronen overeenkomt, retourneert NULLde functie .

Als de expr waarde numeriek is en niet kan worden geïnterpreteerd als een geldig Unix-tijdstempel (bijvoorbeeld overloop), retourneert NULLde functie .

Als de indelingsparameter ongeldig is (ongeldig patroon of onbekende patroonlijst), genereert de functie nog steeds een fout; alleen fouten parseren op de expr geretourneerde NULLwaarde.

Als exprNULL is, retourneert de functie NULL.

Aantekeningen

  • Als de patroonlijst waarden bevat NULL , worden ze genegeerd. Als alle opgegeven patronen zijn NULL, is NULLhet resultaat .
  • Als de tijdstempel overeenkomt met een patroon zonder tijdzonegegevens, wordt deze geparseerd in de sessietijdzone.

Foutvoorwaarden

Examples

-- 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