Condividi tramite


Funzione try_parse_timestamp

Si applica a:check contrassegnato come sì Databricks Runtime 18.1 e versioni successive

Se expr è una stringa, lo analizza in base TIMESTAMP al primo criterio di corrispondenza nell'elenco specificato di formati o restituisce NULL se nessun criterio corrisponde. Se expr è un tipo numerico, lo analizza come timestamp Unix. Restituisce valori NULL non validi o non corrispondenti expr anziché generare un errore.

Sintassi

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

Arguments

  • expr: valore stringa o numerico da analizzare in un oggetto TIMESTAMP. I tipi accettati sono:
    • TINYINT, SMALLINT, INTBIGINT
    • FLOAT, DOUBLE
    • DECIMAL (fino a 18 precisione)
    • STRING
  • pattern: elenco facoltativo di modelli di timestamp o riferimento a un elenco predefinito, #iso8601 ad esempio o #rfc3339. I modelli di timestamp devono essere una stringa costante. Se non viene specificato alcun criterio, equivale a specificare #extended. Per il riferimento ai simboli di pattern e l'elenco di elenchi di criteri predefiniti, vedere Riferimento al modello nella parse_timestamp funzione.

Restituzioni

Oggetto TIMESTAMPo NULL se non è possibile analizzare .expr

expr Se è una stringa e nessuno dei criteri corrisponde, la funzione restituisce NULL.

expr Se è numerico e non può essere interpretato come timestamp Unix valido (ad esempio overflow), la funzione restituisce NULL.

Se il parametro di formato non è valido (modello non valido o elenco di criteri sconosciuti), la funzione genera comunque un errore; solo gli errori di analisi sul expr valore restituiscono NULL.

Se expr è NULL, la funzione restituisce NULL.

Note

  • Se l'elenco dei criteri contiene NULL valori, vengono ignorati. Se tutti i modelli forniti sono NULL, il risultato è NULL.
  • Se il timestamp corrisponde a un criterio che non contiene informazioni sul fuso orario, viene analizzato nel fuso orario della sessione.

Condizioni di errore

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