CAST および CONVERT (SQL Server Compact)
あるデータ型の式を別のデータ型の式に明示的に変換します。CAST と CONVERT は構文が異なるだけで機能は同じです。
構文
Syntax for CAST:
CAST ( expression AS data_type [ (length ) ])
Syntax for CONVERT:
CONVERT ( data_type [ ( length ) ] ,expression [ ,style ] )
引数
data_type
対象システムで提供されるデータ型は bigint です。ユーザー定義データ型は、使用できません。使用できるデータ型の詳細については、「データ型」を参照してください。Length
nchar、nvarchar、char、varchar、binary、varbinary のいずれかのデータ型のパラメータ (省略可能)。Expression
任意の有効な SQL Server Compact 式。詳細については、「式 (SQL Server Compact)」を参照してください。Style
datetime 型または smalldatetime 型のデータを文字データ (nchar、nvarchar、char、varchar、nchar、または nvarchar データ型) に変換するときの日付形式、または float 型、real 型、money 型、または smallmoney 型のデータを文字データ (nchar、nvarchar、char、varchar、nchar、または nvarchar データ型) に変換するときの文字列形式のスタイル。style に NULL を指定すると、返される結果も NULL になります。詳細については、このトピックの後の「解説」を参照してください。
説明
SQL Server Compact は、クウェート アルゴリズムによる、アラビア式の日付形式もサポートしています。
次の表の左側 2 列は、datetime 型または smalldatetime 型のデータを文字データに変換するときに style に指定できる値です。年を 4 桁 (yyyy) で表現する場合は、style の値に 100 を足します。
2 桁の年 (yy) |
年を 4 桁で表現 (yyyy) |
標準 |
入力/出力** |
---|---|---|---|
- |
0 または 100 (*) |
既定値 |
mon dd yyyy hh:mi AM (または PM) |
1 |
101 |
米国 |
mm/dd/yyyy |
2 |
102 |
ANSI |
yy.mm.dd |
3 |
103 |
英国/フランス |
dd/mm/yy |
4 |
104 |
ドイツ |
dd.mm.yy |
5 |
105 |
イタリア |
dd-mm-yy |
6 |
106 |
- |
dd mon yy |
7 |
107 |
- |
Mon dd, yy |
8 |
108 |
- |
hh:mm:ss |
- |
9 または 109 (*) |
既定値 + ミリ秒 |
mon dd yyyy hh:mi:ss:mmm AM (または PM) |
10 |
110 |
米国 |
mm-dd-yy |
11 |
111 |
日本 |
yy/mm/dd |
12 |
112 |
ISO |
Yymmdd |
- |
13 または 113 (*) |
ヨーロッパ: 既定値 + ミリ秒 |
dd mon yyyy hh:mm:ss:mmm (24h) |
14 |
114 |
- |
hh:mi:ss:mmm (24h) |
- |
20 または 120 (*) |
ODBC 標準 |
yyyy-mm-dd hh:mi:ss (24h) |
- |
21 または 121 (*) |
ODBC 標準 (ミリ秒を含む) |
yyyy-mm-dd hh:mi:ss.mmm (24h) |
- |
126(***) |
ISO8601 |
yyyy-mm-ddThh:mm:ss.mmm (スペースなし) |
- |
130* |
イスラム**** |
dd mon yyyy hh:mi:ss:mmm AM |
- |
131* |
イスラム**** |
dd/mm/yy hh:mi:ss:mmm AM |
* 既定値 (style が 0 または 100、9 または 109、13 または 113、20 または 120、21 または 121) の場合は常に年が 4 桁で返されます。
** datetime に変換するときは入力。文字データに変換するときは出力。
*** XML 用です。datetime 型または smalldatetime 型から character 型に変換する場合、出力の書式はこの表のとおりです。float 型、money 型、または smallmoney 型から character 型に変換する場合、出力は style 2 になります。real 型から character 型に変換する場合、出力は style 1 になります。
**** イスラム暦にはいくつかの種類があり、SQL Server Compact ではクウェート アルゴリズムを採用しています。
次の表は、float 型または real 型を文字データに変換するときに style に指定できる値の一覧です。
値 |
出力 |
---|---|
0 (既定値) |
最大 6 桁。必要に応じて科学的表記法を使用します。 |
1 |
常に 8 桁。常に科学的表記法を使用します。 |
2 |
常に 16 桁。常に科学的表記法を使用します。 |
次の表の左側の列は、money 型または smallmoney 型のデータを文字データに変換するときに style に指定できる値です。
値 |
出力 |
---|---|
0 (既定値) |
小数点の左側にコンマを付けません。小数点以下は 2 桁です。例 : 4235.98。 |
1 |
小数点の左側に 3 桁ごとのコンマを付けます。小数点以下は 2 桁です。例 : 3,510.92。 |
2 |
小数点の左側にコンマを付けません。小数点以下は 4 桁です。例 : 4235.9819。 |
numeric 型または decimal 型のデータを文字データに変換するときに、結果セットから末尾のゼロを削除するには、style 128 を使用します。
重要
nchar、nvarchar、binary、および varbinary に対して CAST または CONVERT を使用した場合、SQL Server によって値が最大 30 文字に切りつめられます。SQL Server Compact での最大サイズは、nchar と nvarchar では 4000、binary と varbinary では 8000 になります。このため、クエリによって生成される結果は、SQL Server と SQL Server Compact とで異なります。nchar(200)、nvarchar(200)、binary(400)、varbinary(400) のように、データ型のサイズが指定された場合、SQL Server と SQL Server Compact とで同じ結果が返されます。
次の図に、SQL Server Compact での明示的なデータ変換および暗黙的なデータ変換を示します。
例
次の例では、datetime 型の値を nvarchar 型の値に変換します。
SELECT OrderDate, CONVERT(nvarchar(10), OrderDate, 101)
FROM Orders
あるデータ型の式を別のデータ型の式にキャストします。次の例では、変換の結果は 10 になります。
SELECT CAST(10.6496 AS int)
変換後のデータ型の小数点以下桁数が変換前のデータ型の小数点以下桁数より少ない場合は、値が丸められます。たとえば、次の変換の結果は $10.3497 です。
SELECT CAST(10.3496847 AS money)