|
変換関数は、式をデータ型に変換します。CONVERT 関数はデータを ODBC データ型へのみ変換できます。複数の Pervasive PSQL データ型が 1 つの ODBC データ型にマップされていることがあるので注意してください。たとえば、DECIMAL、CURRENCY、および BIGINT はすべて ODBC データ型の SQL_DECIMAL にマップされています。
CAST 関数は式を Pervasive PSQL リレーショナル データ型へ変換します(式を当該のデータ型へ変換できる場合)。CAST 関数は文字列内のバイナリ ゼロを変換できます。たとえば、CAST(c1 AS BINARY(10)) となります。ここで、c1 はバイナリ ゼロ(NULL)を含んでいる文字型の列です。
ユーザー定義データ型は CAST も CONVERT もできません。
入力と出力が共に文字列の場合、CAST または CONVERT の出力は入力文字列と同じ照合順序になります。
関数
|
説明
|
---|---|
CAST(exp AS type)
|
指定された type に変換された exp の値を返します。
type は、表 「Pervasive PSQL データ型と対応する ODBC データ型」に示されている Pervasive PSQL リレーショナル データ型のいずれかになります。
|
CONVERT(exp, type[, style])
|
指定された type に変換された exp の値を返します。type は、次のキーワードのいずれかになります。
SQL_BIGINT
SQL_BINARY SQL_BIT SQL_CHAR SQL_DATE SQL_DATETIME SQL_DECIMAL SQL_DOUBLE SQL_FLOAT SQL_GUID SQL_INTEGER SQL_LONGVARCHAR SQL_NUMERIC SQL_REAL SQL_SMALLINT SQL_TIME SQL_TIMESTAMP SQL_TINYINT SQL_VARCHAR SQL_LONGVARBINARY
オプション パラメーターの style は、DATETIME データ型のみに適用されます。このパラメーターを使用すると、DATETIME データ型のミリ秒部分が切り捨てられます。style の値は 20 または 120 です。どちらの値も ODBC の正規形式である yyyy-mm-dd hh:mm:ss を指定します。以下の例を参照してください。
|
次の例では、DATE を CHAR にキャストしています。
現在の日付が 2004 年 1 月 1 日の場合、SELECT は 2004-01-01 を返します。
次の例は、それぞれ UBIGINT を SQL_CHAR へ、文字列データを SQL_DATE、SQL_TIME、SQL_TIMESTAMP へ変換します。
SELECT CONVERT(id, SQL_CHAR), CONVERT('1995-06-05', SQL_DATE), CONVERT('10:10:10', SQL_TIME), CONVERT('1990-10-10 10:10:10', SQL_TIMESTAMP) FROM Faculty
次の例は、文字列を SQL_DATE へ変換した後、SQL_DATE に 31 を加算します。
以下の例で、UNIQUEIDENTIFIER データ型をキャストおよび変換する方法を示します。
CREATE TABLE table1(col1 CHAR(36), col2 UNIQUEIDENTIFIER
DEFAULT NEWID())
INSERT INTO table1 (col1) VALUES ('1129619D-772C-AAAB-
B221-00FF00FF0099')
SELECT CAST(col1 AS UNIQUEIDENTIFIER) FROM table1
SELECT CAST(col2 AS LONGVARCHAR) FROM table1
SELECT CONVERT(col2, SQL_CHAR) FROM table1
SELECT CONVERT('1129619D-772C-AAAB-B221-00FF00FF0099'
,
SQL_GUID) FROM table1
以下の例では、DATETIME データ型を style パラメーターを使用して、または使用しないで変換する方法を示します。
CREATE TABLE table2(col1 DATETIME) INSERT INTO table2 (col1) VALUES ('2006-12-25 10:10:10.987') SELECT CONVERT(col1, SQL_CHAR, 20) FROM table2
これは、2006-12-25 10:10:10
を返します。
これは、2006-12-25 10:10:10
を返します。
これは、2006-12-25 10:10:10.987
を返します。
DATETIME にミリ秒を含めたい場合は、style パラメーターを省略します。
style パラメーターを使用する場合は、以下の要件に注意してください。
|