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 2012. Utilisez TRY_PARSE uniquement pour effectuer une conversion d'une chaîne en un type date/heure ou numérique.

Icône Lien de rubrique 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 'fr-fr') 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)

Voir aussi

Référence

PARSE (Transact-SQL)

Fonctions de conversion (Transact-SQL)

TRY_CONVERT (Transact-SQL)

CAST et CONVERT (Transact-SQL)