次の方法で共有


TRY_PARSE (Transact-SQL)

式の結果を、要求されたデータ型に変換して返します。SQL Server 2012 でキャストに失敗した場合は 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 パラメーターの値は、スタイルと共に、次の表に示す型に制限されます。 スタイル情報は、許可するパターンの種類を決定するために提供されます。 スタイルの詳細については、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)

関連項目

参照

PARSE (Transact-SQL)

変換関数 (Transact-SQL)

TRY_CONVERT (Transact-SQL)

CAST および CONVERT (Transact-SQL)