次の方法で共有


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)