- Categorias:
TRY_TO_TIMESTAMP / TRY_TO_TIMESTAMP_*¶
Uma versão especial de TO_TIMESTAMP / TO_TIMESTAMP_* que realiza a mesma operação (ou seja, converte uma expressão de entrada em um carimbo de data/hora), mas com suporte de tratamento de erros (ou seja, se a conversão não puder ser realizada, ela 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.
Nota
TRY_TO_TIMESTAMP faz o mapeamento para uma das outras funções de carimbo de data/hora, com base no parâmetro de sessão TIMESTAMP_TYPE_MAPPING. O parâmetro padrão é TIMESTAMP_NTZ, de forma que TRY_TO_TIMESTAMP faz o mapeamento para TRY_TO_TIMESTAMP_NTZ por padrão.
- Consulte também:
Sintaxe¶
timestampFunction ( <string_expr> [, <format> ] )
timestampFunction ( '<integer>' )
Onde:
timestampFunction ::= TRY_TO_TIMESTAMP | TRY_TO_TIMESTAMP_LTZ | TRY_TO_TIMESTAMP_NTZ | TRY_TO_TIMESTAMP_TZ
Argumentos¶
Obrigatório:
Uma das opções:
string_expr
Uma cadeia de caracteres que possa ser avaliada como TIMESTAMP (TIMESTAMP_NTZ, TIMESTAMP_LTZ ou TIMESTAMP_TZ).
'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 notas de uso.
Opcional:
format
Especificador de formato para
string_expr
ou AUTO. 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 TIMESTAMP_INPUT_FORMAT (padrão AUTO).
Retornos¶
O tipo de dados do valor retornado é um dos tipos de dados de TIMESTAMP. Por padrão, o tipo de dados é TIMESTAMP_NTZ. Você pode alterar isso definindo o parâmetro de sessão TIMESTAMP_TYPE_MAPPING.
Notas de uso¶
Para carimbos de data/hora com fuso horário, o ajuste do parâmetro TIMEZONE afeta o valor de retorno. O carimbo de data/hora retornado está no fuso horário da sessão.
O formato de exibição dos carimbos de data/hora na saída é determinado pelo formato de saída do registro de data e hora que corresponde à função (TIMESTAMP_OUTPUT_FORMAT, TIMESTAMP_LTZ_OUTPUT_FORMAT, TIMESTAMP_NTZ_OUTPUT_FORMAT ou TIMESTAMP_TZ_OUTPUT_FORMAT).
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.
Quando você usa a função TO_TIMESTAMP_NTZ ou TRY_TO_TIMESTAMP_NTZ para converter um carimbo de data/hora com informações de fuso horário, as informações de fuso horário são perdidas. Se o carimbo de data/hora for então convertido novamente em um carimbo de data/hora com informações de fuso horário (usando a função TO_TIMESTAMP_TZ, por exemplo), as informações de fuso horário não são recuperáveis.
Exemplos¶
Este exemplo usa TRY_TO_TIMESTAMP:
SELECT TRY_TO_TIMESTAMP('2024-01-15 12:30:00'), TRY_TO_TIMESTAMP('Invalid');
+-----------------------------------------+-----------------------------+
| TRY_TO_TIMESTAMP('2024-01-15 12:30:00') | TRY_TO_TIMESTAMP('INVALID') |
|-----------------------------------------+-----------------------------|
| 2024-01-15 12:30:00.000 | NULL |
+-----------------------------------------+-----------------------------+
Consulte TO_TIMESTAMP / TO_TIMESTAMP_* para exemplos que convertem uma expressão de entrada em um carimbo de data/hora.