Megosztás:


TRY_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

Visszaadja egy kifejezés eredményét, amelyet a kért adattípusra fordítanak, vagy NULL ha az cast meghibásodik az SQL Serverben. Csak a láncsorból dátum/idő és számtípusokra történő átalakításra használják TRY_PARSE .

Transact-SQL szintaxis konvenciók

Szemantika

TRY_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, vagy TRY_PARSE null értéket kell adnia.

data_type

A literális 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 argumentum nincs megadva, a rendszer az aktuális munkamenet nyelvét használja. Ezt a nyelvezetet implicit vagy explicit módon állítják be az állítás SET LANGUAGE használatával. 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 argumentum érvénytelen, PARSE hibát jelez.

Visszatérési típusok

Visszaadja a kifejezés eredményét, amelyet a kért adattípusra fordítanak, vagy NULL ha a cast sikertelenül működik.

Megjegyzések

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

TRY_PARSE a .NET Framework közös nyelvi runtime (CLR) jelenlétére támaszkodik.

Ez a függvény nem távolható el, 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 az System.Globalization.NumberStyles és DateTimeStyles az enumerációkhoz.

Kategória Típus .NET-típus 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 decimal Decimal NumberStyles.Number
Numeric Numerikus Decimal NumberStyles.Number
Numeric float Double NumberStyles.Float
Numeric valódi Single NumberStyles.Float
Numeric smallmoney 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ő datetimeoffset DateTimeOffset DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

További információk a culture paraméterrő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. Alapvető példa a TRY_PARSE

SELECT TRY_PARSE ('Jabberwokkie' AS DATETIME2 USING 'en-US') AS Result;

Ez a lekérdezés az eredményt adja: NULL.

B. Nullák észlelése TRY_PARSE

SELECT
CASE WHEN TRY_PARSE ('Aragorn' AS DECIMAL USING 'sr-Latn-CS') IS NULL
     THEN 'True'
     ELSE 'False'
END AS Result;

Ez a lekérdezés az eredményt adja: True.

C. Használj IIF-et TRY_PARSE és implicit kultúra beállítással

SET LANGUAGE English;

SELECT IIF (TRY_PARSE ('01/01/2011' AS DATETIME2) IS NULL, 'True', 'False') AS Result;

Ez a lekérdezés az eredményt adja: False.