スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス
値式のデータを,指定したデータ型に変換します。
CAST指定::=CAST({値式|NULL} AS データ型) |
表2-106 値式の結果のデータ型とAS データ型との,データ型の変換可否(1/2)
値式の結果のデータ型 | AS データ型 | ||||||||
---|---|---|---|---|---|---|---|---|---|
数データ | 文字データ(文字集合) | 各国文字データ | 混在文字データ | ||||||
真数 | 概数 | ||||||||
INTEGER,SMALLINT,DECIMAL | FLOAT,SMALLFLT | CHAR,VARCHAR | NCHAR,NVARCHAR | MCHAR,MVARCHAR | |||||
DF | EK | U16 | |||||||
数データ | 真数 | INTEGER,SMALLINT,DECIMAL | ○ | ○ | ○ | ○ | ○ | × | ○ |
概数 | FLOAT,SMALLFLT | ○ | ○ | ○ | ○ | ○ | × | ○ | |
文字データ(文字集合) | CHAR,VARCHAR(DF) | ○ | ○ | ○ | ○※2 | ○ | × | ○ | |
CHAR,VARCHAR(EK) | ○ | ○ | ○※2 | ○ | × | × | × | ||
CHAR,VARCHAR(U16) | ○ | ○ | ○ | × | ○ | × | ○ | ||
各国文字データ | NCHAR,NVARCHAR | × | × | × | × | × | ○ | × | |
混在文字データ | MCHAR,MVARCHAR | ○ | ○ | ○ | × | ○ | × | ○ | |
論理データ | BOOLEAN | × | × | ○ | ○ | ○ | × | ○ | |
日付データ | DATE | × | × | ○ ※1 |
○ ※1 |
○ ※1 |
× | ○※1 | |
時刻データ | TIME | × | × | ○ ※1 |
○ ※1 |
○ ※1 |
× | ○※1 | |
時刻印データ | TIMESTAMP | × | × | ○ ※1 |
○ ※1 |
○ ※1 |
× | ○※1 | |
日間隔データ | INTERVAL YEAR TO DAY | ○ | × | × | × | × | × | × | |
時間隔データ | INTERVAL HOUR TO SECOND | ○ | × | × | × | × | × | × | |
バイナリデータ | BINARY | × | × | ○ | ○ | ○ | × | × |
表2-107 値式の結果のデータ型とAS データ型との,データ型の変換可否(2/2)
値式の結果のデータ型 | AS データ型 | |||||||
---|---|---|---|---|---|---|---|---|
日付データ | 時刻データ | 時刻印データ | 日間隔データ | 時間隔データ | バイナリデータ | |||
DATE | TIME | TIMESTAMP | INTERVAL YEAR TO DAY | INTERVAL HOUR TO SECOND | BINARY | |||
数データ | 真数 | INTEGER,SMALLINT,DECIMAL | × | × | × | ○ | ○ | × |
概数 | FLOAT,SMALLFLT | × | × | × | × | × | × | |
文字データ | CHAR,VARCHAR(DF) | ○ | ○ | ○ | × | × | ○ | |
CHAR,VARCHAR(EK) | ○ | ○ | ○ | × | × | ○ | ||
CHAR,VARCHAR(U16) | ○ | ○ | ○ | × | × | ○ | ||
各国文字データ | NCHAR,NVARCHAR | × | × | × | × | × | × | |
混在文字データ | MCHAR,MVARCHAR | ○ | ○ | ○ | × | × | × | |
論理データ | BOOLEAN | × | × | × | × | × | × | |
日付データ | DATE | ○ | × | ○ | × | × | × | |
時刻データ | TIME | × | ○ | ○ | × | × | × | |
時刻印データ | TIMESTAMP | ○ | ○ | ○ | × | × | × | |
日間隔データ | INTERVAL YEAR TO DAY | × | × | × | ○ | ○ | × | |
時間隔データ | INTERVAL HOUR TO SECOND | × | × | × | ○ | ○ | × | |
バイナリデータ | BINARY | × | × | × | × | × | ○ |
表2-108 日間隔データ,及び時間隔データから数値データへの変換規則
値式の結果のデータ型 | AS データ型に指定した長さ |
---|---|
INTERVAL YEAR TO DAY | 精度8,位取り0 |
INTERVAL HOUR TO SECOND | 精度6,位取り0 |
表2-109 文字データ,及び混在文字データへの変換規則
値式の結果の長さと,AS データ型の長さの関係 | 値式の結果のデータ型 | |
---|---|---|
文字データ,及び混在文字データ | 文字データ,及び混在文字データ以外 | |
値式の結果の長さ<AS データ型に指定した長さ | AS データ型に指定したデータ型が固定長の場合,左詰めにして末尾を空白(結果のデータ型の文字集合の空白)で埋めます。 | |
値式の結果の長さ=AS データ型に指定した長さ | 正常に変換します。 | |
値式の結果の長さ>AS データ型に指定した長さ | 左詰めにして末尾を切り捨てます。切り捨てる部分のデータに空白(結果のデータ型の文字集合の空白)以外の文字があれば,SQLWARN1領域に'W'を設定します。※ | エラーになります。 |
表2-110 日付データ,時刻データ,及び時刻印データの変換規則
値式の結果のデータ型 | AS データ型 | 変換規則 |
---|---|---|
DATE | DATE | 変換しません。 |
TIMESTAMP(p2) | 時刻部分を'00:00:00'として変換します。小数秒部は0で埋めます。 | |
TIME | TIME | 変換しません。 |
TIMESTAMP(p2) | 日付部分をCURRENT_DATEに変換します。小数秒部は0で埋めます。 | |
TIMESTAMP(p1) | DATE | 日付部分を抽出して変換します。 |
TIME | 時刻部分を抽出して変換します。 | |
TIMESTAMP(p2) | 変換しません。 ただし,p1>p2の場合は小数秒部を切り捨て,p1<p2の場合は小数秒部を0で埋めます。 |
表2-111 数データから日間隔データ,又は時間隔データへの変換規則
数データの形式 | 値式の結果のデータ型 |
---|---|
精度8,位取り0 | INTERVAL YEAR TO DAY |
精度6,位取り0 | INTERVAL HOUR TO SECOND |
表2-112 日間隔データ,及び時間隔データの変換規則
値式の結果のデータ型 | AS データ型 | 変換規則 |
---|---|---|
INTERVAL YEAR TO DAY | INTERVAL YEAR TO DAY | 変換しません。 |
INTERVAL HOUR TO SECOND | 日付部分を時刻部分に変換し,INTERVAL HOUR TO SECONDの値の範囲を超えなければ変換できます。超える場合はエラーとなります。 | |
INTERVAL HOUR TO SECOND | INTERVAL YEAR TO DAY | 時刻部分が24時間以上の場合に,日付部分に繰り上げます。24時間未満のデータは切り捨てます。 |
INTERVAL HOUR TO SECOND | 変換しません。 |
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.