TRY_PARSE (Transact-SQL)
Retourne le résultat d'une expression, traduit en type de données demandé, ou NULL si la conversion échoue dans SQL Server. Utilisez TRY_PARSE uniquement pour effectuer une conversion d'une chaîne en un type date/heure ou numérique.
S'applique à : SQL Server (SQL Server 2008 via la version actuelle, Base de données SQL Windows Azure (version initiale via la version actuelle. |
Conventions de la syntaxe Transact-SQL
Syntaxe
TRY_PARSE ( string_value AS data_type [ USING culture ] )
Arguments
string_value
Valeur nvarchar(4000) représentant la valeur mise en forme à analyser dans le type de données spécifié.string_value doit être une représentation valide du type de données demandé, sinon TRY_PARSE retourne la valeur NULL.
data_type
Littéral représentant le type de données demandé pour le résultat.culture
Chaîne facultative qui identifie la culture dans laquelle string_value est mise en forme.Si l'argument culture n'est pas fourni, la langue de la session active est utilisée. Cette langue est définie implicitement, ou explicitement à l'aide de l'instruction SET LANGAGE. culture reçoit n'importe quelle culture prise en charge par le .NET framework ; il n'est pas limité aux langues explicitement prises en charge par SQL Server. Si l'argument culture n'est pas valide, PARSE génère une erreur.
Types des valeurs retournés
Retourne le résultat de l'expression, traduit en type de données demandé, ou NULL si la conversion échoue.
Notes
Utilisez TRY_PARSE uniquement pour effectuer une conversion d'une chaîne en un type date/heure ou numérique. Pour les conversions de type général, continuez à utiliser CAST ou CONVERT. N'oubliez pas qu'il existe une certaine surcharge des performances lors de l'analyse de la valeur de chaîne.
TRY_PARSE repose sur la présence du CLR (Common Langage Runtime) .NET Framework.
Cette fonction ne peut pas être exécutée à distance car elle dépend de la présence du CLR. L'exécution à distance d'une fonction qui nécessite le CLR provoquerait une erreur sur le serveur distant.
Informations supplémentaires concernant le paramètre de type de données
Les valeurs du paramètre data_type sont limitées aux types répertoriés dans le tableau ci-dessous, ainsi que les styles. Les informations sur le style sont fournies pour aider à déterminer les types de modèles autorisés. Pour plus d'informations sur les styles, consultez la documentation du .NET Framework pour les énumérations System.Globalization.NumberStyles et DateTimeStyles.
Catégorie |
Type |
Type .NET |
Styles utilisés |
---|---|---|---|
Numérique |
bigint |
Int64 |
NumberStyles.Number |
Numérique |
int |
Int32 |
NumberStyles.Number |
Numérique |
smallint |
Int16 |
NumberStyles.Number |
Numérique |
tinyint |
Byte |
NumberStyles.Number |
Numérique |
decimal |
Decimal |
NumberStyles.Number |
Numérique |
numeric |
Decimal |
NumberStyles.Number |
Numérique |
float |
Double |
NumberStyles.Float |
Numérique |
real |
Single |
NumberStyles.Float |
Numérique |
smallmoney |
Decimal |
NumberStyles.Currency |
Numérique |
money |
Decimal |
NumberStyles.Currency |
Date et heure |
date |
DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Date et heure |
time |
TimeSpan |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Date et heure |
datetime |
DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Date et heure |
smalldatetime |
DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Date et heure |
datetime2 |
DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Date et heure |
datetimeoffset |
DateTimeOffset |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Informations supplémentaires concernant le paramètre de culture
Le tableau suivant montre les mappages des langues de SQL Server aux cultures .NET framework.
Nom complet |
Alias |
LCID |
Culture spécifique |
---|---|---|---|
us_english |
Anglais |
1033 |
fr-FR |
Deutsch |
Allemand |
1031 |
de-DE |
Français |
Français |
1036 |
fr-FR |
日本語 |
Japonais |
1041 |
ja-JP |
Dansk |
Danois |
1030 |
da-DK |
Español |
Espagnol |
3082 |
es-ES |
Italiano |
Italien |
1040 |
it-IT |
Nederlands |
Néerlandais |
1043 |
nl-NL |
Norsk |
Norvégien |
2068 |
nn-NO |
Português |
Portugais |
2070 |
pt-PT |
Suomi |
Finlandais |
1035 |
fi |
Svenska |
Suédois |
1053 |
sv-SE |
čeština |
Tchèque |
1029 |
Cs-CZ |
magyar |
Hongrois |
1038 |
Hu-HU |
polski |
Polonais |
1045 |
Pl-PL |
română |
Roumain |
1048 |
Ro-RO |
hrvatski |
Croate |
1050 |
hr-HR |
slovenčina |
Slovaque |
1051 |
Sk-SK |
slovenski |
Slovène |
1060 |
Sl-SI |
ελληνικά |
Grec |
1032 |
El-GR |
български |
Bulgare |
1026 |
bg-BG |
русский |
Russe |
1049 |
Ru-RU |
Türkçe |
Turc |
1055 |
Tr-TR |
British |
Anglais britannique |
2057 |
en-GB |
eesti |
Estonien |
1061 |
Et-EE |
latviešu |
Letton |
1062 |
lv-LV |
lietuvių |
Lituanien |
1063 |
lt-LT |
Português (Brasil) |
Brésilien |
1046 |
pt-BR |
繁體中文 |
Chinois traditionnel |
1028 |
zh-TW |
한국어 |
Coréen |
1042 |
Ko-KR |
简体中文 |
Chinois simplifié |
2052 |
zh-CN |
Arabe |
Arabe |
1025 |
ar-SA |
ไทย |
Thaïlandais |
1054 |
Th-TH |
Exemples
A.Exemple simple de TRY_PARSE
SELECT TRY_PARSE('Jabberwokkie' AS datetime2 USING 'en-US') AS Result;
Voici l'ensemble des résultats.
Result
---------------
NULL
(1 row(s) affected)
B.Détection de valeurs NULL avec TRY_PARSE
SELECT
CASE WHEN TRY_PARSE('Aragorn' AS decimal USING 'sr-Latn-CS') IS NULL
THEN 'True'
ELSE 'False'
END
AS Result;
Voici l'ensemble des résultats.
Result
---------------
True
(1 row(s) affected)
C.Utilisation de IIF avec TRY_PARSE et paramètre de culture implicite
SET LANGUAGE English;
SELECT IIF(TRY_PARSE('01/01/2011' AS datetime2) IS NULL, 'True', 'False') AS Result;
Voici l'ensemble des résultats.
Result
---------------
False
(1 row(s) affected)