Dela via


funktion try_parse_timestamp

Gäller för:check markerat ja Databricks Runtime 18.1 och senare

Om expr är en sträng parsar du den till ett TIMESTAMP enligt det första matchande mönstret i den angivna listan med format, eller returnerar NULL om inget mönster matchar. Om expr är en numerisk typ parsar du den som en Unix-tidsstämpel. Ogiltig eller icke-matchande expr returnerar NULL i stället för att skapa ett fel.

Syntax

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

Arguments

  • expr: En sträng eller ett numeriskt värde som ska parsas till en TIMESTAMP. Godkända typer är:
    • TINYINT, SMALLINT, , INTBIGINT
    • FLOAT, DOUBLE
    • DECIMAL (upp till 18 precision)
    • STRING
  • mönster: En valfri lista med tidsstämpelmönster eller en referens till en fördefinierad lista som #iso8601 eller #rfc3339. Tidsstämpelmönster måste vara en konstant sträng. Om inget mönster anges motsvarar det att #extendedange . För mönstersymbolreferensen och listan över fördefinierade mönsterlistor, se Mönsterreferens i parse_timestamp funktion.

Retur

En TIMESTAMP, eller NULL om den expr inte kan parsas.

expr Om är en sträng och inget av mönstren matchar returnerar NULLfunktionen .

Om är expr numeriskt och inte kan tolkas som en giltig Unix-tidsstämpel (till exempel spill) returnerar NULLfunktionen .

Om formatparametern är felaktigt formaterad (ogiltigt mönster eller okänd mönsterlista) genererar funktionen fortfarande ett fel. parsa endast fel på expr värdet returnerar NULL.

Om expr är NULLreturnerar NULLfunktionen .

Notes

  • Om mönsterlistan innehåller NULL värden ignoreras de. Om alla angivna mönster är NULLär NULLresultatet .
  • Om tidsstämpeln matchar ett mönster som inte innehåller någon tidszonsinformation parsas den i sessionens tidszon.

Feltillstånd

Exempel

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