TRY_CONVERT (Transact-SQL)TRY_CONVERT (Transact-SQL)

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Retorna uma conversão de valor ao tipo de dados especificado se a conversão for bem-sucedida; caso contrário, retorna nulo.Returns a value cast to the specified data type if the cast succeeds; otherwise, returns null.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

  
TRY_CONVERT ( data_type [ ( length ) ], expression [, style ] )  

ArgumentosArguments

data_type [ ( length ) ]data_type [ ( length ) ]
O tipo de dados no qual converter expression.The data type into which to cast expression.

expressãoexpression
O valor a ser convertido.The value to be cast.

stylestyle
Expressão de inteiro opcional que especifica como a função TRY_CONVERT deve converter expression.Optional integer expression that specifies how the TRY_CONVERT function is to translate expression.

style aceita os mesmos valores do parâmetro style da função CONVERT.style accepts the same values as the style parameter of the CONVERT function. Para obter mais informações, veja CAST e CONVERT (Transact-SQL).For more information, see CAST and CONVERT (Transact-SQL).

O intervalo de valores aceitáveis é determinado pelo valor de data_type.The range of acceptable values is determined by the value of data_type. Se style for nulo, TRY_CONVERT retornará nulo.If style is null, then TRY_CONVERT returns null.

Tipos de retornoReturn Types

Retorna uma conversão de valor ao tipo de dados especificado se a conversão for bem-sucedida; caso contrário, retorna nulo.Returns a value cast to the specified data type if the cast succeeds; otherwise, returns null.

RemarksRemarks

TRY_CONVERT usa o valor passado a ele e tenta convertê-lo no data_type especificado.TRY_CONVERT takes the value passed to it and tries to convert it to the specified data_type. Se a conversão for bem-sucedida, TRY_CONVERT retornará o valor como o data_type especificado; se ocorrer um erro, será retornado nulo.If the cast succeeds, TRY_CONVERT returns the value as the specified data_type; if an error occurs, null is returned. Porém, se você solicitar uma conversão que não é permitida explicitamente, TRY_CONVERT falhará com um erro.However if you request a conversion that is explicitly not permitted, then TRY_CONVERT fails with an error.

TRY_CONVERT é uma palavra-chave reservada no nível de compatibilidade 110 e superior.TRY_CONVERT is a reserved keyword in compatibility level 110 and higher.

Essa função é capaz de ser remota para servidores da versão SQL Server 2012 (11.x)SQL Server 2012 (11.x) e posterior.This function is capable of being remoted to servers that have a version of SQL Server 2012 (11.x)SQL Server 2012 (11.x) and above. Ela não será remota para servidores que têm uma versão anterior ao SQL Server 2012 (11.x)SQL Server 2012 (11.x).It will not be remoted to servers that have a version below SQL Server 2012 (11.x)SQL Server 2012 (11.x).

ExemplosExamples

A.A. TRY_CONVERT retorna nuloTRY_CONVERT returns null

O exemplo a seguir demonstra que TRY_CONVERT retorna nulo quando a conversão falha.The following example demonstrates that TRY_CONVERT returns null when the cast fails.

SELECT   
    CASE WHEN TRY_CONVERT(float, 'test') IS NULL   
    THEN 'Cast failed'  
    ELSE 'Cast succeeded'  
END AS Result;  
GO  

Aqui está o conjunto de resultados.Here is the result set.

Result  
------------  
Cast failed  
  
(1 row(s) affected)  

O exemplo a seguir demonstra que a expressão deve estar no formato esperado.The following example demonstrates that the expression must be in the expected format.

SET DATEFORMAT dmy;  
SELECT TRY_CONVERT(datetime2, '12/31/2010') AS Result;  
GO  

Aqui está o conjunto de resultados.Here is the result set.

Result  
----------------------  
NULL  
  
(1 row(s) affected)  

B.B. TRY_CONVERT falha com um erroTRY_CONVERT fails with an error

O exemplo a seguir demonstra que TRY_CONVERT retorna um erro quando a conversão não é permitida explicitamente.The following example demonstrates that TRY_CONVERT returns an error when the cast is explicitly not permitted.

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.The result of this statement is an error, because an integer cannot be cast into an xml data type.

Explicit conversion from data type int to xml is not allowed.  

C.C. TRY_CONVERT bem-sucedidoTRY_CONVERT succeeds

Este exemplo demonstra que a expressão deve estar no formato esperado.This example demonstrates that the expression must be in the expected format.

SET DATEFORMAT mdy;  
SELECT TRY_CONVERT(datetime2, '12/31/2010') AS Result;  
GO  

Aqui está o conjunto de resultados.Here is the result set.

Result  
----------------------------------  
2010-12-31 00:00:00.0000000  
  
(1 row(s) affected)  

Consulte TambémSee Also

CAST e CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)