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 une valeur convertie en type de données spécifié si la conversion aboutit ; 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 [ ( length ) ]
Type de données vers lequel effectuer le transtypage d’expression.
expression
Valeur à caster.
style
Expression entière facultative qui spécifie comment la fonction TRY_CONVERT doit traduire expression.
style accepte les mêmes valeurs que le paramètre style de la fonction CONVERT. Pour plus d’informations, consultez CAST et CONVERT (Transact-SQL).
La plage des valeurs acceptables est déterminée par la valeur de data_type. Si style est NULL, alors TRY_CONVERT retourne la valeur NULL.
Types de retour
Retourne une valeur convertie en type de données spécifié si la conversion aboutit ; sinon, retourne NULL.
Remarques
TRY_CONVERT prend la valeur qui lui est transmise et tente de la convertir vers le type data_type spécifié. Si le transtypage réussit, TRY_CONVERT retourne la valeur dans le type data_type spécifié ; si une erreur se produit, la valeur NULL est retournée. Toutefois, si vous demandez une conversion explicitement non autorisée, TRY_CONVERT échoue avec une erreur.
TRY_CONVERT est un mot clé réservé avec le niveau de compatibilité 110 et supérieur.
Cette fonction peut être exécutée à distance sur des serveurs SQL Server 2012 (11.x) ou version ultérieure. Elle ne peut pas être exécutée à distance sur des serveurs dont la version est antérieure à SQL Server 2012 (11.x).
Exemples
R. TRY_CONVERT retourne la valeur NULL.
L'exemple suivant montre que TRY_CONVERT retourne Null lorsque la conversion échoue.
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
(1 row(s) affected)
L'exemple suivant montre que l'expression doit être au format attendu.
SET DATEFORMAT dmy;
SELECT TRY_CONVERT(datetime2, '12/31/2010') AS Result;
GO
Voici le jeu de résultats obtenu.
Result
----------------------
NULL
(1 row(s) affected)
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/2010') AS Result;
GO
Voici le jeu de résultats obtenu.
Result
----------------------------------
2010-12-31 00:00:00.0000000
(1 row(s) affected)
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour