PARSE (Transact-SQL)PARSE (Transact-SQL)

適用対象: ○SQL Server ○Azure SQL Database XAzure Synapse Analytics (SQL DW) XParallel Data Warehouse APPLIES TO: YesSQL Server YesAzure SQL Database NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

SQL ServerSQL Server で要求されたデータ型に変換された式の結果を返します。Returns the result of an expression, translated to the requested data type in SQL ServerSQL Server.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

  
PARSE ( string_value AS data_type [ USING culture ] )  

引数Arguments

string_valuestring_value
指定したデータ型に解析する、書式設定された値を表す nvarchar(4000) 値。nvarchar(4000) value representing the formatted value to parse into the specified data type.

string_value は、要求されたデータ型の有効な表現である必要があります。そうでない場合、PARSE でエラーが発生します。string_value must be a valid representation of the requested data type, or PARSE raises an error.

data_typedata_type
結果に要求されたデータ型を表すリテラル値。Literal value representing the data type requested for the result.

cultureculture
string_value が書式設定されるカルチャを識別する文字列です (省略可能)。Optional string that identifies the culture in which string_value is formatted.

culture 引数が指定されていない場合は、現在のセッションの言語が使用されます。If the culture argument is not provided, then the language of the current session is used. この言語は、SET LANGUAGE ステートメントを使用して、暗黙的または明示的に設定されます。This language is set either implicitly, or explicitly by using the SET LANGUAGE statement. culture は、.NET Framework でサポートされている任意のカルチャを受け入れます。SQL ServerSQL Server で明示的にサポートされている言語に制限されません。culture accepts any culture supported by the .NET Framework; it is not limited to the languages explicitly supported by SQL ServerSQL Server. culture 引数が有効でない場合は、PARSE でエラーが発生します。If the culture argument is not valid, PARSE raises an error.

戻り値の型Return Types

要求されたデータ型に変換された式の結果を返します。Returns the result of the expression, translated to the requested data type.

解説Remarks

PARSE への引数として渡される null の値は、2 つの方法で扱われます。Null values passed as arguments to PARSE are treated in two ways:

  1. null 定数が渡されると、エラーが発生します。If a null constant is passed, an error is raised. null の値をカルチャに対応する方法で異なるデータ型に解析することはできません。A null value cannot be parsed into a different data type in a culturally aware manner.

  2. 実行時に null の値を含んだパラメーターが渡された場合、バッチ全体がキャンセルされないように null が返されます。If a parameter with a null value is passed at run time, then a null is returned, to avoid canceling the whole batch.

PARSE は、文字列型から日付/時刻型および数値型への変換にのみ使用します。Use PARSE only for converting from string to date/time and number types. 一般的な型変換では、引き続き CAST または CONVERT を使用します。For general type conversions, continue to use CAST or CONVERT. 文字列値の解析中に一定のパフォーマンス オーバーヘッドが発生することに注意してください。Keep in mind that there is a certain performance overhead in parsing the string value.

PARSE は、.NET Framework の共通言語ランタイム (CLR) の存在に依存しています。PARSE relies on the presence of the .NET Framework Common Language Runtime (CLR).

この関数は、CLR の存在に依存するため、リモート処理は行われません。This function will not be remoted since it depends on the presence of the CLR. CLR が必要な関数をリモート処理すると、リモート サーバー上でエラーが発生します。Remoting a function that requires the CLR would cause an error on the remote server.

data_type パラメーターの詳細More information about the data_type parameter

data_type パラメーターの値は、スタイルと共に、次の表に示す型に制限されます。The values for the data_type parameter are restricted to the types shown in the following table, together with styles. スタイル情報は、許可するパターンの種類を決定するために提供されます。The style information is provided to help determine what types of patterns are allowed. スタイルについて詳しくは、.NET Framework のドキュメントで System.Globalization.NumberStyles および DateTimeStyles 列挙型を参照してください。For more information on styles, see the .NET Framework documentation for the System.Globalization.NumberStyles and DateTimeStyles enumerations.

カテゴリCategory 種類Type .NET Framework 型.NET Framework type 使用されるスタイルStyles used
数値Numeric bigintbigint Int64Int64 NumberStyles.NumberNumberStyles.Number
数値Numeric INTint Int32Int32 NumberStyles.NumberNumberStyles.Number
数値Numeric smallintsmallint Int16Int16 NumberStyles.NumberNumberStyles.Number
数値Numeric tinyinttinyint ByteByte NumberStyles.NumberNumberStyles.Number
数値Numeric decimaldecimal DecimalDecimal NumberStyles.NumberNumberStyles.Number
数値Numeric numericnumeric DecimalDecimal NumberStyles.NumberNumberStyles.Number
数値Numeric floatfloat DoubleDouble NumberStyles.FloatNumberStyles.Float
数値Numeric realreal SingleSingle NumberStyles.FloatNumberStyles.Float
数値Numeric smallmoneysmallmoney DecimalDecimal NumberStyles.CurrencyNumberStyles.Currency
数値Numeric moneymoney DecimalDecimal NumberStyles.CurrencyNumberStyles.Currency
日時Date and Time datedate DateTimeDateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversalDateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
日時Date and Time timetime TimeSpanTimeSpan DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversalDateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
日時Date and Time DATETIMEdatetime DateTimeDateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversalDateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
日時Date and Time smalldatetimesmalldatetime DateTimeDateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversalDateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
日時Date and Time datetime2datetime2 DateTimeDateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversalDateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
日時Date and Time datetimeoffsetdatetimeoffset DateTimeOffsetDateTimeOffset DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversalDateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

culture パラメーターの詳細More information about the culture parameter

次の表に、SQL ServerSQL Server 言語から .NET Framework カルチャへのマッピングを示します。The following table shows the mappings from SQL ServerSQL Server languages to .NET Framework cultures.

完全名Full name エイリアスAlias LCIDLCID 特定のカルチャSpecific culture
us_englishus_english EnglishEnglish 10331033 ja-JPen-US
DeutschDeutsch GermanGerman 10311031 de-DEde-DE
FrançaisFrançais FrenchFrench 10361036 fr-FRfr-FR
Japanese日本語 JapaneseJapanese 10411041 ja-JPja-JP
DanskDansk DanishDanish 10301030 da-DKda-DK
EspañolEspañol SpanishSpanish 30823082 es-ESes-ES
ItalianoItaliano ItalianItalian 10401040 it-ITit-IT
NederlandsNederlands DutchDutch 10431043 nl-NLnl-NL
NorskNorsk ノルウェー語Norwegian 20682068 nn-NOnn-NO
PortuguêsPortuguês PortuguesePortuguese 20702070 pt-PTpt-PT
SuomiSuomi FinnishFinnish 10351035 fi-FIfi-FI
SvenskaSvenska SwedishSwedish 10531053 sv-SEsv-SE
češtinačeština CzechCzech 10291029 Cs-CZCs-CZ
magyarmagyar HungarianHungarian 10381038 Hu-HUHu-HU
polskipolski PolishPolish 10451045 Pl-PLPl-PL
românăromână RomanianRomanian 10481048 Ro-RORo-RO
hrvatskihrvatski CroatianCroatian 10501050 hr-HRhr-HR
slovenčinaslovenčina SlovakSlovak 10511051 Sk-SKSk-SK
slovenskislovenski SlovenianSlovenian 10601060 Sl-SISl-SI
ελληνικάελληνικά GreekGreek 10321032 El-GREl-GR
българскибългарски BulgarianBulgarian 10261026 bg-BGbg-BG
русскийрусский RussianRussian 10491049 Ru-RURu-RU
TürkçeTürkçe TurkishTurkish 10551055 Tr-TRTr-TR
BritishBritish 英語 (U.K.)British English 20572057 en-GBen-GB
eestieesti EstonianEstonian 10611061 Et-EEEt-EE
latviešulatviešu LatvianLatvian 10621062 lv-LVlv-LV
lietuviųlietuvių LithuanianLithuanian 10631063 lt-LTlt-LT
Português (Brasil)Português (Brasil) BrazilianBrazilian 10461046 pt-BRpt-BR
繁體中文繁體中文 Traditional ChineseTraditional Chinese 10281028 zh-TWzh-TW
한국어한국어 KoreanKorean 10421042 Ko-KRKo-KR
简体中文简体中文 簡体中国語Simplified Chinese 20522052 zh-CNzh-CN
アラビア語Arabic アラビア語Arabic 10251025 ar-SAar-SA
ไทยไทย ThaiThai 10541054 Th-THTh-TH

Examples

A.A. Datetime2 に解析します。PARSE into datetime2

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

結果セットは次のようになります。Here is the result set.

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

B.B. 通貨記号で解析しますPARSE with currency symbol

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

結果セットは次のようになります。Here is the result set.

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

C.C. 暗黙的な言語設定で解析しますPARSE with implicit setting of language

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

結果セットは次のようになります。Here is the result set.

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