Sdílet prostřednictvím


try_parse_timestamp Funkce

Platí pro:check označený ano Databricks Runtime 18.1 a novější

Pokud expr je řetězec, parsuje ho na TIMESTAMP základě prvního odpovídajícího vzoru v daném seznamu formátů nebo vrátí NULL , pokud se žádný vzor shoduje. Pokud expr je číselný typ, parsuje ho jako časové razítko unixu. Místo vyvolání chyby se vrátí neplatná nebo neodpovídající expr hodnota NULL .

Syntaxe

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

Argumenty

  • výraz: Řetězec nebo číselná hodnota, která se má parsovat do .TIMESTAMP Mezi akceptované typy patří:
    • TINYINT, SMALLINT, , INTBIGINT
    • FLOAT, DOUBLE
    • DECIMAL (až 18 přesnosti)
    • STRING
  • vzor: Volitelný seznam vzorů časového razítka nebo odkaz na předdefinovaný seznam, například #iso8601 nebo #rfc3339. Vzory časového razítka musí být konstantní řetězec. Pokud není zadán žádný vzor, je ekvivalentní k určení #extended. Referenční informace k symbolu vzoru a seznam předdefinovaných seznamů vzorů naleznete v tématu Odkaz na vzor ve parse_timestamp funkci.

Návraty

A TIMESTAMPnebo NULL pokud expr nelze analyzovat.

expr Pokud je řetězec a žádný ze vzorů neodpovídá, vrátí NULLfunkce .

expr Pokud je číselná hodnota a nelze ji interpretovat jako platné časové razítko unixu (například přetečení), vrátí NULLfunkce .

Pokud je parametr formátu poškozený (neplatný vzor nebo neznámý seznam vzorů), funkce stále vyvolá chybu; parsovat pouze selhání na vrácenou exprNULLhodnotu .

Pokud expr je NULL, vrátí funkce NULL.

Poznámky

  • Pokud seznam vzorů obsahuje NULL hodnoty, budou ignorovány. Pokud jsou NULLvšechny zadané vzory , výsledek je NULL.
  • Pokud časové razítko odpovídá vzoru obsahujícímu žádné informace o časovém pásmu, analyzuje se v časovém pásmu relace.

Stavy chyb

Příklady

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