Compartir a través de


try_parse_timestamp Función

Se aplica a:check marcado yes Databricks Runtime 18.1 y versiones posteriores

Si expr es una cadena, la analiza en según TIMESTAMP el primer patrón coincidente de la lista de formatos especificada o devuelve NULL si no coincide ningún patrón. Si expr es un tipo numérico, lo analiza como una marca de tiempo de Unix. Devuelve no NULL válido o no coincidente expr en lugar de generar un error.

Sintaxis

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

Argumentos

  • expr: cadena o valor numérico que se va a analizar en .TIMESTAMP Los tipos aceptados son:
    • TINYINT, SMALLINT, , INT, BIGINT
    • FLOAT, DOUBLE
    • DECIMAL (hasta 18 precisión)
    • STRING
  • pattern: una lista opcional de patrones de marca de tiempo o una referencia a una lista predefinida, como #iso8601 o #rfc3339. Los patrones de marca de tiempo deben ser una cadena constante. Si no se especifica ningún patrón, equivale a especificar #extended. Para obtener la referencia de símbolos de patrón y la lista de listas de patrones predefinidas, vea Referencia de patrón en parse_timestamp función.

Devoluciones

, TIMESTAMPo NULL si no expr se puede analizar.

expr Si es una cadena y ninguno de los patrones coincide, la función devuelve NULL.

expr Si es numérico y no se puede interpretar como una marca de tiempo de Unix válida (por ejemplo, desbordamiento), la función devuelve NULL.

Si el parámetro de formato tiene un formato incorrecto (patrón no válido o lista de patrones desconocidos), la función sigue produciendo un error; solo analiza los errores en el expr valor devuelto NULL.

Si expr es NULL, la función devuelve NULL.

Notas

  • Si la lista de patrones contiene NULL valores, se omiten. Si todos los patrones proporcionados son NULL, el resultado es NULL.
  • Si la marca de tiempo coincide con un patrón que no contiene información de zona horaria, se analiza en la zona horaria de la sesión.

Condiciones del error

Ejemplos

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