次の方法で共有


TRY_PARSE(Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウスMicrosoft Fabric の SQL データベース

要求されたデータ型に変換された式の結果を返します。または、SQL Serverでキャストが失敗した場合に返 NULL 。 文字列タイプから日付/時刻および数字タイプへの変換には TRY_PARSE のみ使用してください。

Transact-SQL 構文表記規則

構文

TRY_PARSE ( string_value AS data_type [ USING culture ] )

引数

string_value

指定したデータ型に解析する、書式設定された値を表す nvarchar(4000) 値。

string_value は要求されたデータ型の有効な表現でなければならず、 TRY_PARSE nullを返します。

data_type

結果に要求されたデータ型を表すリテラル。

culture

string_value が書式設定されるカルチャを識別する文字列です (省略可能)。

引数 culture が指定されていない場合は、現在のセッションの言語が使用されます。 この言語は、 SET LANGUAGE 文を用いて暗黙的または明示的に設定されます。 culture は.NET Frameworkでサポートされているあらゆる文化を受け入れます。 SQL Serverが明示的にサポートしている言語に限定されるわけではありません。 引数 culture が無効な場合、 PARSE はエラーを発生させます。

戻り値の型

式の結果を返し、要求されたデータ型に変換されたもの、キャストが失敗した場合は NULL 返します。

解説

文字列タイプから日付/時刻および数字タイプへの変換には TRY_PARSE のみ使用してください。 一般的な型変換は引き続き CAST または CONVERT を使い続けてください。 文字列の値を解析する際には一定のパフォーマンスオーバーヘッドがあることを覚えておいてください。

TRY_PARSE .NET Framework共通言語ランタイム(CLR)の存在に依存しています。

この関数は CLR の存在に依存するため、リモート化できません。 CLR が必要な関数をリモート処理すると、リモート サーバー上でエラーが発生します。

data_typeパラメータに関する詳細情報

data_type パラメーターの値は、スタイルと共に、次の表に示す型に制限されます。 スタイル情報は、許可するパターンの種類を決定するために提供されます。 スタイルの詳細については、.NET Frameworkの System.Globalization.NumberStyles および DateTimeStyles 列挙に関するドキュメントをご覧ください。

カテゴリ タイプ .NET の種類 使用されるスタイル
数値 bigint Int64 NumberStyles.Number
数値 int Int32 NumberStyles.Number
数値 smallint Int16 NumberStyles.Number
数値 tinyint Byte NumberStyles.Number
数値 小数 Decimal NumberStyles.Number
数値 numeric Decimal NumberStyles.Number
数値 float Double NumberStyles.Float
数値 real Single NumberStyles.Float
数値 smallmoney Decimal NumberStyles.Currency
数値 money Decimal NumberStyles.Currency
日時 date DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
日時 time TimeSpan DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
日時 datetime DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
日時 smalldatetime DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
日時 datetime2 DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
日時 datetimeoffset DateTimeOffset DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

cultureパラメータに関する詳細情報

次の表に、SQL Server 言語から .NET Framework カルチャへのマッピングを示します。

完全名 エイリアス LCID 特定のカルチャ
us_english 英語 1033 en-US
Deutsch ドイツ語 1031 de-DE
Français フランス語 1036 fr-FR
Japanese 日本語 1041 ja-JP
Dansk デンマーク語 1030 da-DK
Español スペイン語 3082 es-ES
Italiano イタリア語 1040 it-IT
Nederlands オランダ語 1043 nl-NL
Norsk ノルウェー語 2068 nn-NO
Português ポルトガル語 2070 pt-PT
Suomi フィンランド語 1035 fi-FI
Svenska スウェーデン語 1053 sv-SE
čeština チェコ語 1029 Cs-CZ
magyar ハンガリー語 1038 Hu-HU
polski ポーランド語 1045 Pl-PL
română ルーマニア語 1048 Ro-RO
hrvatski クロアチア語 1050 hr-HR
slovenčina スロバキア語 1051 Sk-SK
slovenski スロベニア語 1060 Sl-SI
ελληνικά ギリシャ語 1032 El-GR
български ブルガリア語 1026 bg-BG
русский ロシア語 1049 Ru-RU
Türkçe トルコ語 1055 Tr-TR
British 英語 (U.K.) 2057 en-GB
eesti エストニア語 1061 Et-EE
latviešu ラトビア語 1062 lv-LV
lietuvių リトアニア語 1063 lt-LT
Português (ブラジル) Brazilian 1046 pt-BR
繁體中文 繁体中国語 1028 zh-TW
한국어 韓国語 1042 Ko-KR
简体中文 簡体中国語 2052 zh-CN
アラビア語 アラビア語 1025 ar-SA
ไทย タイ語 1054 Th-TH

A. 基本的な例TRY_PARSE

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

このクエリの結果は NULLを返します。

B. ヌルを検出TRY_PARSE

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

このクエリの結果は Trueを返します。

C: IIFをTRY_PARSEと暗黙の文化設定で使う

SET LANGUAGE English;

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

このクエリの結果は Falseを返します。