TRY_PARSE (Transact-SQL)
適用対象: SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Microsoft Fabric のツールハウス内の SQL 分析エンドポイント
式の結果を、要求されたデータ型に変換して返します。SQL Server でキャストに失敗した場合は NULL を返します。 TRY_PARSE は、文字列型から日付/時刻型および数値型への変換にのみ使用します。
構文
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)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示