PARSE (Transact-SQL)

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

SQL Server で要求されたデータ型に変換された式の結果を返します。

Transact-SQL 構文表記規則

構文

PARSE ( string_value AS data_type [ USING culture ] )  

Note

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

引数

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

string_value は、要求されたデータ型の有効な表現である必要があります。そうでない場合、PARSE でエラーが発生します。

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

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

culture 引数が指定されていない場合は、現在のセッションの言語が使用されます。 この言語は、SET LANGUAGE ステートメントを使用して、暗黙的または明示的に設定されます。 culture は、.NET Framework でサポートされている任意のカルチャを受け入れます。SQL Server で明示的にサポートされている言語に制限されません。 culture 引数が有効でない場合は、PARSE でエラーが発生します。

戻り値の型

要求されたデータ型に変換された式の結果を返します。

解説

PARSE への引数として渡される null の値は、2 つの方法で扱われます。

  1. null 定数が渡されると、エラーが発生します。 null の値をカルチャに対応する方法で異なるデータ型に解析することはできません。

  2. 実行時に null の値を含んだパラメーターが渡された場合、バッチ全体がキャンセルされないように null が返されます。

PARSE は、文字列型から日付/時刻型および数値型への変換にのみ使用します。 一般的な型変換では、引き続き CAST または CONVERT を使用します。 文字列値の解析中に一定のパフォーマンス オーバーヘッドが発生することに注意してください。

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

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

data_type パラメーターの詳細

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

カテゴリ Type .NET Framework 型 使用されるスタイル
数値 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. Datetime2 に解析します。

SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'en-US') AS Result;  

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

Result  
---------------  
2010-12-13 00:00:00.0000000  
  
(1 row(s) affected)  

B. 通貨記号で解析します

SELECT PARSE('€345,98' AS money USING 'de-DE') AS Result;  

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

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

C. 暗黙的な言語設定で解析します

-- The English language is mapped to en-US specific culture  
SET LANGUAGE 'English';  
SELECT PARSE('12/16/2010' AS datetime2) AS Result;  

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

Result  
---------------  
2010-12-16 00:00:00.0000000  
  
(1 row(s) affected)