SQL Engine Reference (v11)

変換関数

変換関数は、式をデータ型に変換します。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 の出力は入力文字列と同じ照合順序になります。

表 60 変換関数
関数
説明
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 にキャストしています。

CREATE TABLE u1(cdata DATE) 
INSERT INTO u1 VALUES(curdate()) 
SELECT CAST(cdate as CHAR20) FROM u1 

現在の日付が 2004 年 1 月 1 日の場合、SELECT は 2004-01-01 を返します。

666

次の例は、それぞれ 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 
666

次の例は、文字列を SQL_DATE へ変換した後、SQL_DATE に 31 を加算します。

SELECT Name FROM Class WHERE Start_date > CONVERT ('1995-
05-07', SQL_DATE) + 31 
666

以下の例で、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 
666

以下の例では、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 を返します。

SELECT CONVERT(col1, SQL_CHAR, 120) FROM table2 

これは、2006-12-25 10:10:10 を返します。

SELECT CONVERT(col1, SQL_CHAR) FROM table2 

これは、2006-12-25 10:10:10.987 を返します。

DATETIME にミリ秒を含めたい場合は、style パラメーターを省略します。

style パラメーターを使用する場合は、以下の要件に注意してください。


論理関数

システム ストアド プロシージャ