try_parse_timestamp függvény

A következőre vonatkozik: yes Databricks Runtime 18.1 vagy újabb jelöléssel

Ha expr sztring, akkor az adott formátumlistában szereplő első egyező minta alapján elemzi TIMESTAMP , vagy visszaadja NULL , ha nincs egyező minta. Ha expr numerikus típus, akkor Unix-időbélyegként elemzi. Érvénytelen vagy nem egyező expr eredmény jelenik NULL meg ahelyett, hogy hibát jelezne.

Szemantika

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

Arguments

  • expr: Egy sztring vagy numerikus érték, amely TIMESTAMPegy . Az elfogadott típusok a következők:
    • TINYINT, SMALLINT, INTBIGINT
    • FLOAT, DOUBLE
    • DECIMAL (legfeljebb 18 pontosság)
    • STRING
  • minta: Az időbélyeg-minták választható listája, vagy egy előre definiált listára mutató hivatkozás, például #iso8601 vagy #rfc3339. Az időbélyeg-mintáknak állandó sztringnek kell lenniük. Ha nincs megadva minta, az egyenértékű a beállítással #extended. A mintaszimbólumok hivatkozását és az előre definiált mintalisták listáját lásd: Mintahivatkozás a függvénybenparse_timestamp.

Visszatérítések

A TIMESTAMP, vagy NULL ha a expr nem elemezhető.

Ha a expr függvény egy sztring, és egyik minta sem egyezik, a függvény ad vissza NULL.

Ha a expr függvény numerikus, és nem értelmezhető érvényes Unix-időbélyegként (például túlcsordulás), a függvény visszaadja a függvényt NULL.

Ha a formátumparaméter hibás (érvénytelen minta vagy ismeretlen mintalista), a függvény továbbra is hibát jelez; csak az értékvisszatérés exprhibáinak NULL elemzése.

Ha expr igen NULL, akkor a függvény ad vissza NULL.

Jegyzetek

  • Ha a mintalista értékeket tartalmaz NULL , a rendszer figyelmen kívül hagyja őket. Ha az összes megadott minta az NULL, akkor az eredmény .NULL
  • Ha az időbélyeg egyezik egy olyan mintával, amely nem tartalmaz időzónát, akkor az elemzés a munkamenet időzónájában történik.

Gyakori hibafeltételek

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