Oracle SQL 関数 : CAST : データ型の変換
Ret := CAST( <expr> AS <データ型> ); CASTは<expr>で指定されたデータを<データ型>で指定されたデータ型に変換します。
以下に例を示します。
最初のSQL文はNUMERIC型からCHAR,VARCHAR2型への変換ですが、CHAR型の場合は指定桁分の結果が返されるので、固定桁の表示がほしいときには利用できます。
次のSQL文はDATE型からCHAR,VARCHAR2型への変換と、CHAR型からDATE型への変換です。
'CHAR_TO_DATE'の結果はDATE型そのもを表示しても面白くないので、TO_CHAR関数で再びCHAR型へ書式付で変換しています。時刻がクリアされて変換されるところが注意するところです。
次のSQL文はDATE型からCHAR,VARCHAR2型への変換と、CHAR型からDATE型への変換です。
'CHAR_TO_DATE'の結果はDATE型そのもを表示しても面白くないので、TO_CHAR関数で再びCHAR型へ書式付で変換しています。時刻がクリアされて変換されるところが注意するところです。
SQL> SELECT 1 AS NUM_TEST 2 ,'#' || CAST(1 AS CHAR(10)) || '#' AS NUM_TO_CHAR 3 ,'#' || CAST(1 AS VARCHAR2(10)) || '#' AS NUM_TO_VARCHAR2 FROM DUAL; NUM_TEST NUM_TO_CHAR NUM_TO_VARCH ---------- ------------ ------------ 1 #1 # #1# SQL> SELECT '#' || CAST(SYSDATE AS CHAR(20)) || '#' AS DATE_TO_CHAR 2 ,'#' || CAST(SYSDATE AS VARCHAR2(20)) || '#' AS DATE_TO_VARCHAR2 3 ,TO_CHAR(CAST('2005/01/22' AS DATE),'YYYY/MM/DD HH24:MI:SS') AS CHAR_TO_DATE FROM DUAL; DATE_TO_CHAR DATE_TO_VARCHAR2 CHAR_TO_DATE ---------------------- ---------------------- ------------------- #05-03-07 # #05-03-07# 2005/01/22 00:00:00