PARSE (Transact-SQL)
Retourne le résultat d'une expression, traduit en type de données demandé dans SQL Server 2012.
Conventions de la syntaxe Transact-SQL
Syntaxe
PARSE ( string_value AS data_type [ USING culture ] )
Arguments
string_value
Valeurnvarchar(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 PARSE génère une erreur.
data_type
Valeur littérale 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éfini 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é.
Notes
Les valeurs NULL passées comme arguments à PARSE sont traitées de deux façons :
Si une constante NULL est passée, une erreur est générée. Une valeur NULL ne peut pas être analysée en un type de données différent d'une manière compatible avec la culture.
Si un paramètre avec une valeur NULL est passé au moment de l'exécution, la valeur NULL est retournée, afin d'éviter l'annulation du traitement entier.
Utilisez 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.
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 Framework |
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.PARSE en datetime2
SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'fr-fr') AS Result;
Voici l'ensemble des résultats.
Result
---------------
2010-12-13 00:00:00.0000000
(1 row(s) affected)
B.PARSE avec symbole monétaire
SELECT PARSE('€345,98' AS money USING 'de-DE') AS Result;
Voici l'ensemble des résultats.
Result
---------------
345.98
(1 row(s) affected)
C.PARSE avec définition implicite de la langue
-- The English language is mapped to fr-fr specific culture
SET LANGUAGE 'English';
SELECT PARSE('12/16/2010' AS datetime2) AS Result;
Voici l'ensemble des résultats.
Result
---------------
2010-12-16 00:00:00.0000000
(1 row(s) affected)