TRY_CONVERT (Transact-SQL)
Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric
Retorna uma conversão de valor ao tipo de dados especificado se a conversão for bem-sucedida; caso contrário, retorna nulo.
Convenções de sintaxe de Transact-SQL
Sintaxe
TRY_CONVERT ( data_type [ ( length ) ], expression [, style ] )
Observação
Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.
Argumentos
data_type [ ( length ) ]
O tipo de dados no qual converter expression.
expressão
O valor a ser convertido.
style
Expressão de inteiro opcional que especifica como a função TRY_CONVERT deve converter expression.
style aceita os mesmos valores do parâmetro style da função CONVERT. Para obter mais informações, veja CAST e CONVERT (Transact-SQL).
O intervalo de valores aceitáveis é determinado pelo valor de data_type. Se style for nulo, TRY_CONVERT retornará nulo.
Tipos de retorno
Retorna uma conversão de valor ao tipo de dados especificado se a conversão for bem-sucedida; caso contrário, retorna nulo.
Comentários
TRY_CONVERT usa o valor passado a ele e tenta convertê-lo no data_type especificado. Se a conversão for bem-sucedida, TRY_CONVERT retornará o valor como o data_type especificado; se ocorrer um erro, será retornado nulo. Porém, se você solicitar uma conversão que não é permitida explicitamente, TRY_CONVERT falhará com um erro.
TRY_CONVERT é uma palavra-chave reservada no nível de compatibilidade 110 e superior.
Essa função é capaz de ser remota para servidores da versão SQL Server 2012 (11.x) e posterior. Ela não será remota para servidores que têm uma versão anterior ao SQL Server 2012 (11.x).
Exemplos
a. TRY_CONVERT retorna nulo
O exemplo a seguir demonstra que TRY_CONVERT retorna nulo quando a conversão falha.
SELECT
CASE WHEN TRY_CONVERT(float, 'test') IS NULL
THEN 'Cast failed'
ELSE 'Cast succeeded'
END AS Result;
GO
Este é o conjunto de resultados.
Result
------------
Cast failed
(1 row(s) affected)
O exemplo a seguir demonstra que a expressão deve estar no formato esperado.
SET DATEFORMAT dmy;
SELECT TRY_CONVERT(datetime2, '12/31/2010') AS Result;
GO
Este é o conjunto de resultados.
Result
----------------------
NULL
(1 row(s) affected)
B. TRY_CONVERT falha com um erro
O exemplo a seguir demonstra que TRY_CONVERT retorna um erro quando a conversão não é permitida explicitamente.
SELECT TRY_CONVERT(xml, 4) AS Result;
GO
O resultado dessa instrução é um erro, porque um inteiro não pode ser convertido em um tipo de dados XML.
Explicit conversion from data type int to xml is not allowed.
C. TRY_CONVERT bem-sucedido
Este exemplo demonstra que a expressão deve estar no formato esperado.
SET DATEFORMAT mdy;
SELECT TRY_CONVERT(datetime2, '12/31/2010') AS Result;
GO
Este é o conjunto de resultados.
Result
----------------------------------
2010-12-31 00:00:00.0000000
(1 row(s) affected)
Consulte Também
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários