Categorias:

Funções de conversão , Funções de data e hora

TRY_TO_DATE

Uma versão especial da função TO_DATE que realiza a mesma operação (ou seja, converte uma expressão de entrada em uma data), mas com suporte para tratamento de erros (ou seja, se a conversão não puder ser realizada, retorna um valor NULL em vez de acusar um erro).

Para obter mais informações, consulte Funções de conversão de tratamento de erros.

Consulte também:

TO_DATE , DATE

Sintaxe

TRY_TO_DATE( <string_expr> [, <format> ] )
TRY_TO_DATE( '<integer>' )
Copy

Argumentos

Obrigatório:

Uma das opções:

string_expr

Cadeia de caracteres da qual se pode extrair uma data. Por exemplo: '2024-01-31'.

'integer'

Uma expressão que avalia como uma cadeia de caracteres contendo um número inteiro. Por exemplo: '15000000'. Dependendo da magnitude da cadeia de caracteres, ela pode ser interpretada como segundos, milissegundos, microssegundos ou nanossegundos. Para obter mais detalhes, consulte as notas de uso desta função.

Opcional:

format

Especificador do formato de data para string_expr ou AUTO, que especifica que o Snowflake deve detectar automaticamente o formato a ser utilizado. Para obter mais informações, consulte Formatos de data e hora em funções de conversão.

O valor padrão é o valor atual do parâmetro de sessão DATE_INPUT_FORMAT (padrão AUTO).

Retornos

O tipo de dados do valor retornado é DATE.

Notas de uso

  • O formato de exibição das datas na saída é determinado pelo parâmetro de sessão DATE_OUTPUT_FORMAT (padrão YYYY-MM-DD).

  • Se o formato do parâmetro de entrada for uma cadeia de caracteres que contenha um número inteiro:

    • Depois que a cadeia de caracteres é convertida em um inteiro, o inteiro é tratado como um número de segundos, milissegundos, microssegundos ou nanossegundos após o início da época Unix (1970-01-01 00:00:00.000000000 UTC).

      • Se o número inteiro for inferior a 31536000000 (o número de milissegundos em um ano), então o valor é tratado como um número de segundos.

      • Se o valor for maior ou igual a 31536000000 e menor que 31536000000000, então o valor é tratado como milissegundos.

      • Se o valor for maior ou igual a 31536000000000 e menor que 31536000000000000, então o valor é tratado como microssegundos.

      • Se o valor for maior ou igual a 31536000000000000, então o valor é tratado como nanossegundos.

    • Se mais de uma linha for avaliada (por exemplo, se a entrada for o nome da coluna de uma tabela que contém mais de uma linha), cada valor será examinado independentemente para determinar se o valor representa segundos, milissegundos, microssegundos ou nanossegundos.

Exemplos

O exemplo a seguir usa a função TRY_TO_DATE:

SELECT 
  TRY_TO_DATE('2024-05-10') AS valid_date, 
  TRY_TO_DATE('Invalid') AS invalid_date;
Copy
+------------+--------------+
| VALID_DATE | INVALID_DATE |
|------------+--------------|
| 2024-05-10 | NULL         |
+------------+--------------+

Consulte TO_DATE , DATE para obter exemplos de como converter uma expressão de entrada em uma data.