適用於:
Databricks 執行時間 18.1 及以上版本
如果 expr 是字串,則依照給定格式列表中的第一個匹配模式解析成 a TIMESTAMP ,若無匹配模式則回傳 NULL 。 如果 expr 是數字型態,則解析為 Unix 時間戳記。 無效或不匹配 expr 的回傳 NULL ,而不是產生錯誤。
語法
try_parse_timestamp(expr [, { pattern [...] } ])
引數
-
expr:一個字串或數值,用來解析成
TIMESTAMP。 公認的類型有:-
TINYINT、SMALLINT、INT、BIGINT -
FLOAT、DOUBLE -
DECIMAL(精度最高可達18) STRING
-
-
模式:可選的時間戳記模式清單,或參考預先定義的清單,如
#iso8601或#rfc3339。 時間戳記模式必須是 恆定的字串。 若未指定模式,則等同於指定 。#extended關於圖案符號參考及預設模式列表,請參見「功能中的parse_timestamp模式參考」。
退貨
A TIMESTAMP, 或 NULL 如果無法解析。expr
若 是 expr 字串且所有模式不匹配,函數回傳 NULL。
若 為 expr 數值且無法被解釋為有效的 Unix 時間戳記(例如 overflow),則該函式回傳 NULL。
如果格式參數異常(模式無效或模式列表未知),函式仍會產生錯誤;僅解析對 expr 值回傳 NULL的失敗。
如果 expr 為 NULL,則函式會傳 NULL回 。
Notes
- 如果模式清單包含
NULL數值,則會忽略它們。 若所有提供的模式均為NULL,結果為NULL。 - 若時間戳記與無時區資訊的模式相符,則會在會話時區進行解析。
錯誤條件
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