リファレンスガイド> SQL関数のTDVサポート> 変換関数> CAST
 
CAST
有効な式とターゲットデータタイプが与えられると、CAST関数は式を指定されたデータタイプに変換します。
構文
CAST (expression AS target_data_type)
備考
expression引数は、ターゲットデータタイプに変換される内容を指定します。
入力式がNULLの場合、出力はNULLです。入力式が空の文字列の場合、出力は空の文字列です。それ以外の場合、出力タイプはターゲットデータタイプと同じです。
ターゲットデータタイプには、長さ、精度、スケールの引数を含めることができます。
この関数ではBLOBまたはCLOBデータタイプを使用できます。
DECIMALをINTEGERに変換すると、結果の値は丸められるのではなく切り捨てられます。 (たとえば、15.99は15に変換されます。)
CAST関数は、エラーを発行せずに文字列を切り捨てることができます。たとえば、CAST( '30000' AS INTEGER)は、エラーなしで整数(30000)を生成します。
文字列「30000」をTINYINTにキャストすると、CAST関数はランタイムエラーを発行します。これは、TINYINTデータタイプがその大きな数値に対応できず、意味のある切り捨てができないためです。適用されます。このような場合、CASTは通常、整数列のすべての値がTINYINTデータタイプに対して有効な値である場合にのみ続行されます。
CAST関数を使用して、文字列を切り捨て、小数を整数に切り捨てることができます。
注:小数を次の整数に切り上げる関数については、CEILINGを参照してください。
すべてのINTERVALは、CHARおよびVARCHARにキャストでき、その逆も可能です。
間隔の年、月、日、時間、分、または秒は、同じ間隔の単位にのみキャストできます。データ損失が発生した場合、エラーとなります。 (以下の表の例を参照してください。)
文字列値からDATE、TIME、またはTIMESTAMPへのCASTでは、入力値が次のISO形式のいずれかである必要があります。
CAST to DATE—「YYYY-MM-DD」入力値の形式
CAST to TIME—「HH24:MI:SS」入力値の形式(およびオプションの小数点の前の小数秒)
タイムスタンプへのキャスト—「YYYY-MM-DD HH24:MI:SS」入力値の形式(およびオプションの小数点の前の小数秒)
値がこれらの形式でない場合は、TO_DATETO_TIMESTAMP、またはなどの代替データ変換関数を使用できます。 PARSE_DATEPARSE_TIMESTAMPなど。これらの関数を使用した結果、これらの関数の一部がプッシュされず、クエリ自体がプッシュされない場合があります。
次の表は、入力式タイプとターゲットデータタイプの各組み合わせの結果の出力タイプを示しています。
式のデータタイプ
ターゲットデータタイプ
出力タイプ
BIGINT、CHAR、DECIMAL、FLOAT、INTEGER、LONGVARCHAR、NUMERIC、REAL、SMALLINT、TINYINT、VARCHAR
BIGINT、DECIMAL、FLOAT、INTEGER、NUMERIC、REAL、SMALLINT、TINYINT
ターゲットとなるデータタイプ
NULL
BIGINT、CHAR、DATE、DECIMAL、FLOAT、LONGVARCHAR、NULL、NUMERIC、INTEGER、REAL、SMALLINT、TIME、TIMESTAMP、VARCHAR
NULL
NULL<Data_Type1>
<Any_Data_Type2>
NULL<Data_Type1>
BIGINT、CHAR、DATE、DECIMAL、FLOAT、INTEGER、LONGVARCHAR、NUMERIC、REAL、SMALLINT、TIME、TIMESTAMP、TINYINT、VARCHAR
CHAR、LONGVARCHAR、VARCHAR
ターゲットとなるデータタイプ
DATE、TIMESTAMP
DATE
DATE
TIME、TIMESTAMP
TIME
TIME
BIGINT、CHAR、INTEGER、LONGVARCHAR、SMALLINT、TIMESTAMP、TINYINT、VARCHAR
TIMESTAMP
TIMESTAMP
例(単純なCAST関数)
SELECT products.UnitPrice, CAST (products.UnitPrice AS INTEGER) Price
FROM /shared/examples/ds_inventory/products products
例(ターゲットデータタイプには長さが含まれます)
CAST (Orders_Qry.ShipPostalCode AS CHAR(5))
例(BLOBまたはCLOBを使用)
CAST (myBlob AS VARBINARY(size))
CAST (myVarBinary AS BLOB)
CAST (myClob AS VARCHAR(size))
CAST (myVarChar AS CLOB)
例(さまざまなデータタイプへのキャスト)
CAST (INTERVAL '23' MONTH AS INTERVAL YEAR)
 
これはエラーを返します(11か月間失われました)。
CAST (INTERVAL '23' MONTH AS VARCHAR)
 
これは、データタイプがVARCHARの23を返します。
CAST (INTERVAL '10' YEAR AS INTERVAL MONTH(3))
 
これにより、間隔が月単位で返されます(120)。