Megosztás:


PARSE (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsSQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Egy kifejezés eredményét adja vissza, amelyet az SQL Server kért adattípusára fordítanak.

Transact-SQL szintaxis konvenciók

Szemantika

PARSE ( string_value AS data_type [ USING culture ] )  

Arguments

string_value
nvarchar(4000) érték, amely a formázott értéket jelöli, amelyet a megadott adattípusba lehet parzálni.

string_value érvényes reprezentációnak kell lennie a kért adattípusnak, különben a PARSE hibát okoz.

data_type
A literális érték, amely az eredményhez kért adattípust jelöli.

kultúra
Opcionális string, amely meghatározza azt a kultúrát, amelyben string_value formázódik.

Ha a kultúra érv nincs megadva, akkor a jelenlegi ülés nyelvezetét használják. Ezt a nyelvet vagy implicit, vagy kifejezetten a SET LANGUAGE utasítás használatával állítják be. a kultúra elfogad minden olyan kultúrát, amelyet a .NET keretrendszer támogat; nem korlátozódik az SQL Server által kifejezetten támogatott nyelvekre. Ha a kultúraérv nem érvényes, a PARSE hibát jelent.

Visszatérési típusok

Visszaadja a kifejezés eredményét, amelyet a kért adattípusra fordítanak.

Megjegyzések

A PARSE-nak argumentumként továbbított nullértékeket kétféleképpen kezelik:

  1. Ha null állandót használunk, hiba keletkezik. Egy null értéket nem lehet kulturálisan tudatos módon más adattípusba bontani.

  2. Ha egy null értékű paramétert futás közben továbbítunk, akkor null értéket adnak vissza, hogy elkerüljék az egész adag törlését.

A PARSE-t csak a láncsorból dátum/idő- és számtípusokra történő átalakításhoz használjuk. Általános típusváltásokhoz továbbra is a CAST vagy CONVERT funkciót használd. Ne feledd, hogy a string értékének elemzése bizonyos teljesítményterheléssel jár.

A PARSE a .NET Framework Common Language Runtime (CLR) jelenlétére támaszkodik.

Ez a funkció nem lesz távolról eltávolítva, mivel a CLR jelenlététől függ. Egy CLR-t igénylő funkció távolítása hibát okozna a távoli szerveren.

További információk a data_type paraméterről

A data_type paraméter értékei a következő táblázatban látható típusokra korlátozódnak, stílusokkal együtt. A stílusinformációk segítenek meghatározni, milyen minták engedélyezettek. További információért a stílusokról lásd a .NET Framework dokumentációját a System.Globalization.NumberStyles és DateTimeStyles felsorolásokhoz.

Kategória Típus .NET-keretrendszer típusa Használt stílusok
Numeric bigint Int64 NumberStyles.Number
Numeric int Int32 NumberStyles.Number
Numeric smallint Int16 NumberStyles.Number
Numeric tinyint Byte NumberStyles.Number
Numeric decimális Decimal NumberStyles.Number
Numeric Numerikus Decimal NumberStyles.Number
Numeric float Double NumberStyles.Float
Numeric valódi Single NumberStyles.Float
Numeric aprópénz Decimal NumberStyles.Currency
Numeric pénz Decimal NumberStyles.Currency
Dátum és idő date DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Dátum és idő time TimeSpan DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Dátum és idő datetime DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Dátum és idő smalldatetime DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Dátum és idő datetime2 DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Dátum és idő dátum-idő eltolás DateTimeOffset DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

További információk a kultúra paraméteréről

Az alábbi táblázat az SQL Server nyelvek és .NET Framework kultúrák közötti leképezéseit mutatja.

Teljes név Alias LCID Specifikus kultúra
us_english Angol 1033 en-US
Deutsch Német 1031 de-DE
Français Francia 1036 fr-FR
日本語 Japán 1041 ja-JP
Dansk Dán 1030 da-DK
Español Spanyol 3082 es-ES
Italiano Olasz 1040 it-IT
Nederlands Holland 1043 nl-NL
Norsk Norvég 2068 nn-NO
Portugágia Portugál 2070 pt-PT
Suomi finn nyelv 1035 fi-FI
Svenska Svéd 1053 sv-SE
čeština Cseh 1029 Cs-CZ
magyar Magyar 1038 Hu-HU
polski Lengyel 1045 Pl-PL
română Román 1048 Ro-RO
hrvatski Horvát 1050 hr-HR
slovenčina Szlovák 1051 Sk-SK
Slovenski Szlovén 1060 Sl-SI
ελληνικά Görög 1032 El-GR
български Bolgár 1026 bg-BG
русский Orosz 1049 Ru-RU
Türkçe Török 1055 Tr-TR
Brit Brit angol 2057 en-GB
eesti Észt 1061 Et-EE
latviešu lett 1062 lv-LV
lietuvių Litván 1063 lt-LT
Português (Brazília) Brazil 1046 pt-BR
繁體中文 Hagyományos kínai 1028 zh-TW
한국어 Koreai 1042 Ko-KR
简体中文 Egyszerűsített kínai 2052 zh-CN
Arab nyelv Arab nyelv 1025 ar-SA
ไทย thai 1054 Th-TH

Példák

A. PARSE be datetime2

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

Itt van az eredmények összessége.

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

B. PARSE valutaszimbólummal

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

Itt van az eredmények összessége.

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

C. PARSE implicit nyelvi beállítással

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

Itt van az eredmények összessége.

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