Delen via


PARSE (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Geeft het resultaat van een expressie terug, vertaald naar het gevraagde datatype in SQL Server.

Transact-SQL syntaxis-conventies

Syntaxis

PARSE ( string_value AS data_type [ USING culture ] )  

Arguments

string_value
nvarchar(4000)-waarde die de geformatteerde waarde voorstelt die geparseerd moet worden in het opgegeven datatype.

string_value moet een geldige representatie zijn van het gevraagde datatype, anders levert PARSE een fout op.

data_type
Letterlijke waarde die het gegevenstype vertegenwoordigt dat voor het resultaat is gevraagd.

cultuur
Optionele string die de cultuur identificeert waarin string_value is opgemaakt.

Als het cultuurargument niet wordt geleverd, wordt de taal van de huidige sessie gebruikt. Deze taal wordt impliciet of expliciet ingesteld door gebruik te maken van de SET LANGUAGE-instructie. cultuur accepteert elke cultuur die wordt ondersteund door het .NET Framework; het is niet beperkt tot de talen die expliciet door SQL Server worden ondersteund. Als het cultuurargument niet geldig is, levert PARSE een fout op.

Retourtypen

Geeft het resultaat van de expressie terug, vertaald naar het gevraagde datatype.

Opmerkingen

Nulwaarden die als argumenten aan PARSE worden doorgegeven, worden op twee manieren behandeld:

  1. Als een nulconstante wordt doorgegeven, wordt een fout gegenereerd. Een nulwaarde kan niet op een cultureel bewuste manier worden geparsed in een ander datatype.

  2. Als een parameter met een nulwaarde tijdens uitvoering wordt doorgegeven, wordt een nul teruggegeven, om te voorkomen dat de hele batch wordt geannuleerd.

Gebruik alleen PARSE voor het converteren van string naar datum/tijd en getallentypen. Voor algemene typeconversies blijf je CAST of CONVERT gebruiken. Houd er rekening mee dat er een bepaalde prestatie-overhead is bij het parsen van de stringwaarde.

PARSE is afhankelijk van de aanwezigheid van de .NET Framework Common Language Runtime (CLR).

Deze functie wordt niet op afstand geplaatst omdat deze afhankelijk is van de aanwezigheid van de CLR. Het ontkoppelen van een functie die de CLR vereist, zou een fout veroorzaken op de externe server.

Meer informatie over de data_type-parameter

De waarden voor de data_type-parameter zijn beperkt tot de types die in de volgende tabel worden weergegeven, samen met stijlen. De stijlinformatie wordt verstrekt om te bepalen welke soorten patronen zijn toegestaan. Voor meer informatie over stijlen, zie de documentatie van .NET Framework voor de System.Globalization.NumberStyles en DateTimeStyles-enumeraties .

Categorie Typologie .NET Framework-type Gebruikte stijlen
Numeric Bigint Int64 NumberStyles.Number
Numeric int Int32 NumberStyles.Number
Numeric smallint Int16 NumberStyles.Number
Numeric tinyint Byte NumberStyles.Number
Numeric decimal Decimal NumberStyles.Number
Numeric numeriek Decimal NumberStyles.Number
Numeric zweven Double NumberStyles.Float
Numeric echt Single NumberStyles.Float
Numeric smallmoney Decimal NumberStyles.Currency
Numeric geld Decimal NumberStyles.Currency
Datum en tijd date DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.VeronderstelUniverseelAannemenUniverseel
Datum en tijd time TimeSpan DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.VeronderstelUniverseelAannemenUniverseel
Datum en tijd datetime DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.VeronderstelUniverseelAannemenUniverseel
Datum en tijd smalldatetime DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.VeronderstelUniverseelAannemenUniverseel
Datum en tijd datetime2 DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.VeronderstelUniverseelAannemenUniverseel
Datum en tijd datetimeoffset DateTimeOffset DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.VeronderstelUniverseelAannemenUniverseel

Meer informatie over de kweekparameter

De volgende tabel toont de mappings van SQL Server-talen naar .NET Framework-culturen.

Volledige naam Alias LCID Specifieke cultuur
us_english Engels 1033 en-US
Deutsch Duits 1031 de-DE
Français Frans 1036 fr-FR
日本語 De Japanse taal 1041 ja-JP
Dansk Deens 1030 Taalcode: da-DK (Deens zoals gebruikt in Denemarken)
Español Spaans 3082 es-ES
Italiano Italiaans 1040 it-IT
Nederlands Nederlands 1043 nl-NL
Norsk Noors 2068 nn-NO
Português Portugees 2070 pt-PT
Suomi Fins 1035 fi-FI
Svenska Zweeds 1053 sv-SE
čeština Tsjechisch 1029 Cs-CZ
magyar Hongaars 1038 Hu-HU
polski Pools 1045 Pl-PL
română Roemeens 1048 Ro-RO
hrvatski Kroatisch 1050 hr-HR
slovenčina Slowaaks 1051 Sk-SK
Slovenski Sloveens 1060 Sl-SI
ελληνικά Grieks 1032 El-GR
български Bulgaars 1026 bg-BG
русский Russisch 1049 Ru-RU
Türkçe Turkse taal 1055 Tr-TR
Brits Brits-Engels 2057 en-GB
eesti Estlander 1061 Et-EE
latviešu Letse taal 1062 lv-LV
lietuvių Litouws 1063 lt-LT
Português (Brazilië) Braziliaans 1046 pt-BR
繁體中文 Traditioneel Chinees 1028 zh-TW
한국어 Koreaans 1042 Ko-KR
简体中文 Vereenvoudigd Chinees 2052 zh-CN
Arabisch Arabisch 1025 ar-SA
ไทย Thai 1054 Th-TH

Voorbeelden

Eén. PARSE naar datetime2

SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'en-US') AS Result;  

Hier is het resultatenoverzicht.

Result  
---------------  
2010-12-13 00:00:00.0000000  
  
(1 row(s) affected)  

B. PARSE met valutasymbool

SELECT PARSE('€345,98' AS money USING 'de-DE') AS Result;  

Hier is het resultatenoverzicht.

Result  
---------------  
345.98  
  
(1 row(s) affected)  

C. PARSE met impliciete setting van taal

-- The English language is mapped to en-US specific culture  
SET LANGUAGE 'English';  
SELECT PARSE('12/16/2010' AS datetime2) AS Result;  

Hier is het resultatenoverzicht.

Result  
---------------  
2010-12-16 00:00:00.0000000  
  
(1 row(s) affected)