データ型変換について、前回の続きで今回は明示的なデータ型変換について記載いたします。
明示的なデータ型の変換について
書式変更での式評価、表示される書式をデフォルトと違う書式にする場合は、データ型を変換する関数を使用します。これが明示的なデータ型変換です。
データ型変換関数について
データ型を変換する主な関数は、以下の通りです。
- TO_CHAR:数値または日付→文字
- TO_NUMBER:文字→数値
- TO_DATE:文字→日付
CHARもしくはVARCHAR2からNUMBERへの変換はTO_NUMBER。
CHARもしくはVARCHAR2からDATEへの変換はTO_DATE。
NUMBERもしくはDATEからCHAR・VARCHAR2への変換は、TO_CHAR。
TO_CHAR関数:日付から文字へ変換
TO_CHAR関数で日付から文字へデータ型を変換する構文は以下の通りです。
■構文:TO_CHAR(日付データ[, 書式モデル][, NLSパラメータ])
日付データ:日付型の列名、日付型のデータ
書式モデル:表示したい表示形式
NLSパラメータ:月、日の名前が返される言語の指定
TO_CHAR関数は日付データを指定した書式にして文字に変換をします。
書式はOracleDB規定の日付要素で表し、単一引用符で囲みます。
書式内のリテラルは二重引用符で囲みます(単一引用符でないことに注意)。
書式は大文字・小文字を区別します。
FM要素を使用すると、選考する空白、数値0を除去することができます。
ORACLEデータベースで規定されているTO_CHAR関数で使用できる日付要素
<世紀、年月日>
SCCまたはCC:世紀
YYYYまたはSYYYY:年
YYY、YYまたはY:年の下3桁、2桁または1桁
Y,YYY:カンマのついた年
Q:年の四半期
MM:月(2桁)
MONTH:月(1月~12月)※英語の場合は9文字の月の名前
MON:月の名前(英語の場合は3文字の省略形)
RM:ローマ数字で表した月
WW:年おける週
W:月における週
DDD:年における日
DD:月における日
D:週における日
DAY:曜日(英語だと9文字の曜日)
DY:曜日(英語だと3文字の省略形)
FM:前後に空白を付けずに値を戻す
<時間>
AM:午前
PM :午後
HH:時を12時間表記(1~12)
HH12:時を12時間表記(1~12)
HH24:時を24時間表記(0~23)
MI:分(0~59)
SS:秒(0~59)
<スペル表記>
TH:序数
使用例 DDTH→11TH
SP:数値をスペル表記
使用例 DDSP→ELEVEN
SPTHまたはTHSP
数値をスペル表記 DDSPTH→ELEVENTH