TRY_PARSE (Transact-SQL)

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

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

Transact-SQL 構文表記規則

構文

TRY_PARSE ( string_value AS data_type [ USING culture ] )  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

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 列挙型を参照してください。

カテゴリ Type .NET の種類 使用されるスタイル
数値 bigint Int64 NumberStyles.Number
数値 INT Int32 NumberStyles.Number
数値 smallint Int16 NumberStyles.Number
数値 tinyint Byte NumberStyles.Number
数値 decimal Decimal (10 進数型) NumberStyles.Number
数値 numeric Decimal (10 進数型) 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 ja-JP
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 (Brasil) Brazilian 1046 pt-BR
繁體中文 Traditional Chinese 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;  

結果セットは次のようになります。

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

B. TRY_PARSE で NULL 値を検出する

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

結果セットは次のようになります。

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

C. TRY_PARSE と暗黙のカルチャ設定を指定した IIF を使用する

SET LANGUAGE English;  
SELECT IIF(TRY_PARSE('01/01/2011' AS datetime2) IS NULL, 'True', 'False') AS Result;

結果セットは次のようになります。

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

参照

PARSE (Transact-SQL)
変換関数 (Transact-SQL)
TRY_CONVERT (Transact-SQL)
CAST および CONVERT (Transact-SQL)