Partager via


TRY_CONVERT (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Retourne un cast de valeur vers le type de données spécifié si le cast réussit ; sinon, retourne NULL.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

data_type

Type de données vers lequel effectuer le transtypage d’expression.

length

Entier facultatif qui spécifie la longueur du type de données cible pour les types de données qui autorisent une longueur spécifiée par l’utilisateur. La valeur maximale pour la longueur est de 8 000 octets.

expression

Valeur à convertir.

style

Expression entière facultative qui spécifie la façon dont la fonction doit traduire l’expressionTRY_CONVERT.

le style accepte les mêmes valeurs que le paramètre de style de la CONVERT fonction. Pour plus d’informations, consultez l’article CAST et CONVERT.

La valeur de data_type détermine la plage de valeurs acceptables. Si le style est NULL, retourne NULLTRY_CONVERT ensuite .

Types de retour

Retourne un cast de valeur vers le type de données spécifié si le cast réussit ; sinon, retourne NULL.

Notes

TRY_CONVERT prend la valeur qui lui est transmise et tente de la convertir vers le type data_type spécifié. Si le cast réussit, TRY_CONVERT retourne la valeur comme data_type spécifié ; si une erreur se produit, NULL elle est retournée. Toutefois, si vous demandez une conversion qui n’est pas autorisée explicitement, TRY_CONVERT échoue avec une erreur.

TRY_CONVERTest une mot clé réservée, en commençant par le niveau 110de compatibilité.

Cette fonction est capable d’être distante vers des serveurs qui ont SQL Server 2012 (11.x) et des versions ultérieures. Il n’est pas distant vers les serveurs qui ont une version antérieure à SQL Server 2012 (11.x).

Exemples

R. TRY_CONVERT retourne NULL

L’exemple suivant montre que TRY_CONVERT le retour est retourné NULL en cas d’échec de la conversion.

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

Voici le jeu de résultats obtenu.

Result  
------------  
Cast failed

L'exemple suivant montre que l'expression doit être au format attendu.

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

Voici le jeu de résultats obtenu.

Result  
----------------------  
NULL

B. TRY_CONVERT échoue avec une erreur

L’exemple suivant montre que TRY_CONVERT retourne une erreur lorsque la conversion n’est pas autorisée explicitement.

SELECT TRY_CONVERT(XML, 4) AS Result;
GO

Le résultat de cette instruction est une erreur, car un entier ne peut pas être converti en un type de données xml.

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

C. TRY_CONVERT réussit

Cet exemple suivant montre que l'expression doit être au format attendu.

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

Voici le jeu de résultats obtenu.

Result
----------------------------------
2022-12-31 00:00:00.0000000