Partilhar via


try_parse_timestamp Função

Aplica-se a:sim Databricks Runtime 18.1 e superiores

Se expr for uma cadeia, analisa-a em a TIMESTAMP de acordo com o primeiro padrão correspondente na lista dada de formatos, ou retorna NULL se nenhum padrão coincidir. Se expr for um tipo numérico, analisa-o como um carimbo temporal Unix. Retornos NULL inválidos ou não correspondentes expr em vez de gerar um erro.

Sintaxe

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

Argumentos

  • expr: Uma cadeia de caracteres ou valor numérico para analisar num TIMESTAMP. Os tipos aceites são:
    • TINYINT, SMALLINT, INT, BIGINT
    • FLOAT, DOUBLE
    • DECIMAL (até 18 de precisão)
    • STRING
  • padrão: Uma lista opcional de padrões de carimbo temporal ou uma referência a uma lista pré-definida como #iso8601 ou #rfc3339. Os padrões de carimbo temporal devem ser uma cadeia constante. Se nenhum padrão for especificado, é equivalente a especificar #extended. Para a referência do símbolo do padrão e a lista de listas de padrões predefinidas, veja Referência do padrão na parse_timestamp função.

Devoluções

A TIMESTAMP, ou NULL se o expr não pode ser analisado.

Se for expr uma cadeia e nenhum dos padrões coincidir, a função devolve NULL.

Se o expr for numérico e não puder ser interpretado como um carimbo temporal válido do Unix (por exemplo, overflow), a função devolve NULL.

Se o parâmetro de formato estiver malformado (padrão inválido ou lista de padrões desconhecida), a função ainda gera um erro; apenas falhas de análise no expr retorno NULLde valor .

Se expr é NULL, a função devolve NULL.

Notes

  • Se a lista de padrões contiver NULL valores, estes são ignorados. Se todos os padrões fornecidos forem NULL, o resultado é NULL.
  • Se o carimbo temporal corresponder a um padrão que não contém informação sobre fuso horário, é analisado no fuso horário da sessão.

Condições de erro

Exemplos

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