オーロラさんの勉強帳

33歳、未経験からIT業界へ。SESのロースキル客先常駐勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。

SQL基礎 明示的なデータ型の変換(TO_CHAR 日付から文字への変換) oracleデータベース

データ型変換について、前回の続きで今回は明示的なデータ型変換について記載いたします。

 

auroralights.hatenablog.com

 

 

明示的なデータ型の変換について

書式変更での式評価、表示される書式をデフォルトと違う書式にする場合は、データ型を変換する関数を使用します。これが明示的なデータ型変換です。

 

データ型変換関数について

データ型を変換する主な関数は、以下の通りです。

  • TO_CHAR:数値または日付→文字
  • TO_NUMBER:文字→数値
  • TO_DATE:文字→日付

f:id:auroralights:20200406220005p:plain

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