- Categorias:
TRY_TO_TIME¶
Uma versão especial de TO_TIME , TIME que realiza a mesma operação (ou seja, converte uma expressão de entrada em uma 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.
- Consulte também:
Sintaxe¶
TRY_TO_TIME( <string_expr> [, <format> ] )
TRY_TO_TIME( '<integer>' )
Argumentos¶
Obrigatório:
Uma das opções:
string_expr
Esta deve ser uma cadeia de caracteres que pode ser convertida em uma hora válida.
'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 abaixo.
Nota
O uso de números inteiros cotados como entradas é obsoleto.
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 TIME_INPUT_FORMAT (geralmente AUTO).
Retornos¶
O tipo de dados do valor retornado é TIME
.
Notas de uso¶
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.
Nota
Aviso de descontinuação: Versões futuras do Snowflake podem interpretar automaticamente valores inteiros de cadeia de caracteres como segundos, em vez de milissegundos, microssegundos ou nanossegundos. O Snowflake recomenda chamar TO_DATE, TO_TIME ou TO_TIMESTAMP com cadeias de caracteres que contenham inteiros somente quando esses inteiros devam ser interpretados como segundos.
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¶
Isso demonstra o uso de TRY_TO_TIME
:
SELECT TRY_TO_TIME('12:30:00'), TRY_TO_TIME('Invalid'); +-------------------------+------------------------+ | TRY_TO_TIME('12:30:00') | TRY_TO_TIME('INVALID') | |-------------------------+------------------------| | 12:30:00 | NULL | +-------------------------+------------------------+