Compartilhar via


try_parse_timestamp Função

Aplica-se a:check marked yes Databricks Runtime 18.1 e superior

Se expr for uma cadeia de caracteres, analise-a de TIMESTAMP acordo com o primeiro padrão correspondente na lista de formatos fornecida ou retornará NULL se nenhum padrão corresponder. Se expr for um tipo numérico, analise-o como um carimbo de data/hora Unix. Retornos inválidos ou não correspondentes exprNULL em vez de gerar um erro.

Sintaxe

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

Argumentos

  • expr: um valor numérico ou de cadeia de caracteres a ser analisado em um TIMESTAMP. Os tipos aceitos são:
    • TINYINT, SMALLINT, , INTBIGINT
    • FLOAT, DOUBLE
    • DECIMAL (até 18 precisão)
    • STRING
  • padrão: uma lista opcional de padrões de carimbo de data/hora ou uma referência a uma lista predefinida, como #iso8601 ou #rfc3339. Os padrões de carimbo de data/hora devem ser uma cadeia de caracteres constante. Se nenhum padrão for especificado, será equivalente a especificar #extended. Para obter a referência de símbolo de padrão e a lista de listas de padrões predefinidas, consulte a referência padrão na parse_timestamp função.

Devoluções

A TIMESTAMPou NULL se não expr puder ser analisado.

Se for expr uma cadeia de caracteres e nenhum dos padrões corresponder, a função retornará NULL.

Se o expr valor for numérico e não puder ser interpretado como um carimbo de data/hora unix válido (por exemplo, estouro), a função retornará NULL.

Se o parâmetro de formato estiver malformado (padrão inválido ou lista de padrões desconhecidos), a função ainda gerará um erro; somente analisar falhas no retorno NULLdo expr valor.

Se expr for NULL, a função retorna NULL.

Observações

  • Se a lista de padrões contiver NULL valores, eles serão ignorados. Se todos os padrões fornecidos forem NULL, o resultado será NULL.
  • Se o carimbo de data/hora corresponder a um padrão que não contém informações de fuso horário, ele será 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