式の結果を、要求されたデータ型に変換して返します。SQL Server 2012 でキャストに失敗した場合は NULL を返します。 TRY_PARSE は、文字列型から日付/時刻型および数値型への変換にのみ使用します。
構文
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 パラメーターの値は、スタイルと共に、次の表に示す型に制限されます。 スタイル情報は、許可するパターンの種類を決定するために提供されます。 スタイルの詳細については、System.Globalization.NumberStyles および DateTimeStyles 列挙体に関する .NET Framework のドキュメントを参照してください。
カテゴリ |
型 |
.NET の種類 |
使用されるスタイル |
|---|---|---|---|
数値 |
bigint |
Int64 |
NumberStyles.Number |
数値 |
int |
Int32 |
NumberStyles.Number |
数値 |
smallint |
Int16 |
NumberStyles.Number |
数値 |
tinyint |
Byte |
NumberStyles.Number |
数値 |
decimal |
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 |
カルチャ パラメーターの詳細
次の表に、SQL Server 言語から .NET Framework カルチャへのマッピングを示します。
完全名 |
別名 |
LCID |
特定のカルチャ |
|---|---|---|---|
us_english |
英語 |
1033 |
en-US |
Deutsch |
ドイツ語 |
1031 |
de-DE |
Français |
フランス語 |
1036 |
fr-FR |
日本語 |
日本語 |
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 |
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 (ブラジル) |
ポルトガル語 (ブラジル) |
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;
以下に結果セットを示します。
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)