Sdílet prostřednictvím


TRY_PARSE (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsKoncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Vrací výsledek výrazu, přeloženého na požadovaný datový typ, nebo NULL pokud přesání selže v SQL Serveru. Používejte TRY_PARSE pouze pro převod řetězce na datum/čas a typy čísel.

Transact-SQL konvence syntaxe

Syntaxe

TRY_PARSE ( string_value AS data_type [ USING culture ] )

Arguments

string_value

hodnota nvarchar(4000), která představuje formátovanou hodnotu pro zpracování do zadaného datového typu.

string_value musí být platnou reprezentací požadovaného datového typu, jinak TRY_PARSE vrací null.

data_type

Literal představuje požadovaný datový typ pro výsledek.

jazykové verze

Volitelný řetězec, který identifikuje kulturu, ve které je string_value formátován.

Pokud není zadaný argument jazykové verze, použije se jazyk aktuální relace. Tento jazyk je nastaven buď implicitně, nebo explicitně použitím SET LANGUAGE tohoto tvrzení. kultura přijímá jakoukoli kulturu podporovanou .NET Frameworkem. Není omezen pouze na jazyky explicitně podporované SQL Serverem. Pokud argument jazykové verze není platný, vyvolá chybu.

Návratové typy

Vrátí výsledek výrazu, přeložený na požadovaný datový typ, nebo NULL pokud přenášení selže.

Poznámky

Používejte TRY_PARSE pouze pro převod řetězce na datum/čas a typy čísel. Pro obecné převody typů pokračujte v používání CAST nebo CONVERT. Mějte na paměti, že při parsování hodnoty řetězce je určitá výkonnostní režia.

TRY_PARSE spoléhá na přítomnost běžného jazyka .NET Framework (CLR).

Tato funkce nemůže být vzdálená, protože závisí na přítomnosti modulu CLR. Vzdálené připojení funkce, která vyžaduje CLR, by způsobilo chybu na vzdáleném serveru.

Více informací o parametru data_type

Hodnoty parametru data_type jsou omezeny na typy uvedené v následující tabulce spolu se styly. Informace o stylu jsou poskytovány, aby pomohly určit, jaké typy vzorů jsou povoleny. Pro více informací o stylech viz dokumentace .NET Framework pro DateTimeStyles enumeraceSystem.Globalization.NumberStyles.

Kategorie Typ Typ .NET Používané styly
Numerický bigint Int64 NumberStyles.Number
Numerický int Int32 NumberStyles.Number
Numerický smallint Int16 NumberStyles.Number
Numerický tinyint Byte NumberStyles.Number
Numerický decimal Decimal NumberStyles.Number
Numerický číselný Decimal NumberStyles.Number
Numerický float Double NumberStyles.Float
Numerický skutečné Single NumberStyles.Float
Numerický málo peněz Decimal NumberStyles.Currency
Numerický peníze Decimal NumberStyles.Currency
Datum a čas date DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Datum a čas time TimeSpan DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Datum a čas datetime DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Datum a čas smalldatetime DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Datum a čas datetime2 DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Datum a čas datetimeoffset DateTimeOffset DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Více informací o parametru culture

Následující tabulka ukazuje mapování z jazyků SQL Server na kultury .NET Frameworku.

Celý název Alias LCID Specifická kultura
us_english Angličtina 1033 en-US
Deutsch Němčina 1031 de-DE
Français francouzský 1036 fr-FR
日本語 Japonština 1041 ja-JP
Dansk Dánština 1030 da-DK
Español Španělština 3082 es-ES
Italiano Italština 1040 it-IT
Nederlands Nizozemština 1043 nl-NL
Norsk Norština 2068 nn-NO
Português Portugalština 2070 pt-PT
Finsko Finština 1035 fi-FI
Svenska Švédština 1053 sv-SE
čeština Čeština 1029 Cs-CZ
magyar Maďarština 1038 Hu-HU
polski Polština 1045 Pl-PL
română Rumunština 1048 Ro-RO
hrvatski Chorvatština 1050 hr-HR
slovenčina Slovenština 1051 Sk-SK
Slovenski Slovinština 1060 Sl-SI
ελληνικά Řečtina 1032 El-GR
български Bulharština 1026 bg-BG
русский Ruština 1049 Ru-RU
Türkçe Turečtina 1055 Tr-TR
Britský Britská angličtina 2057 en-GB
eesti Estonština 1061 Et-EE
latviešu Lotyština 1062 lv-LV
lietuvių Litevština 1063 lt-LT
Português (Brazílie) Brazilský 1046 pt-BR
繁體中文 Tradiční čínština 1028 zh-TW
한국어 Korejština 1042 Ko-KR
简体中文 Zjednodušená čínština 2052 zh-CN
Arabština Arabština 1025 ar-SA
ไทย Thajština 1054 Th-TH

Examples

A. Základní příklad TRY_PARSE

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

Tento dotaz vrací výsledek .NULL

B. Detekujte nuly pomocí TRY_PARSE

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

Tento dotaz vrací výsledek .True

C. Používejte IIF s TRY_PARSE a implicitním nastavením kultury

SET LANGUAGE English;

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

Tento dotaz vrací výsledek .False