Oracle SQL 関数 : TO_CHAR(日付) : 日付の文字列変換
stringRet := TO_CHAR( dateSrc [ , stringFormat [ , nlsParam ] ] ); TO_CHARは日付データdateSrcを日付書式stringFormatに従ってVARCHAR2型のデータを返します。 stringFormatを指定しない場合はデフォルトの日付書式に従います。 nlsParamは月、日の名称及び略称の言語を指定します。
通常の処理でよく使用する書式文字
日付書式文字 | 変換内容 |
---|---|
D | 曜日(1~7) |
DD | 日(1~31) |
DDD | 通年での日(1~366) |
E | 元号の略称 |
EE | 元号 |
HH | 時間(1~12) |
HH24 | 時間(0~23) |
MI | 分(0~59) |
MM | 月(01~12) |
YYYY | 年 |
YY | 年の下2桁 |
各書式文字の区切りとして"空白" "/" "-" "." "," ":" ";"の文字が許されています。
SQL> SELECT TO_CHAR(SYSDATE,'YYYY MM DD HH24 MI SS') FMSP, 2 TO_CHAR(SYSDATE,'YYYY/MM/DD HH24/MI/SS') FMSL, 3 TO_CHAR(SYSDATE,'YYYY.MM.DD HH24.MI.SS') FMDP, 4 TO_CHAR(SYSDATE,'YYYY-MM-DD HH24-MI-SS') FMH, 5 TO_CHAR(SYSDATE,'YYYY,MM,DD HH24,MI,SS') FMC, 6 TO_CHAR(SYSDATE,'YYYY:MM:DD HH24:MI:SS') FMK, 7 TO_CHAR(SYSDATE,'YYYY;MM;DD HH24;MI;SS') FMSK FROM DUAL; FMSP FMSL FMDP FMH FMC ------------------- ------------------- ------------------- ------------------- ------------------- FMK FMSK ------------------- ------------------- 2002 11 17 15 35 59 2002/11/17 15/35/59 2002.11.17 15.35.59 2002-11-17 15-35-59 2002,11,17 15,35,59 2002:11:17 15:35:59 2002;11;17 15;35;59
TO_CHAR の対象として当然テーブルの中のカラムを指定できますので、例を以下に記します。
SQL> SELECT 2 売上番号 3 , TO_CHAR(売上日, 'YYYY/MM/DD') 売上日 4 , TO_CHAR(売上日, 'YYYY/MM/DD HH24:MI:SS') 売上日2 FROM TT_売上; 売上番号 売上日 売上日2 ---------- -------------------- -------------------------------------- 1 2002/11/01 2002/11/01 00:00:00 2 2002/11/03 2002/11/03 00:00:00 3 2002/11/04 2002/11/04 00:00:00 4 2002/11/13 2002/11/13 00:00:00 5 2002/11/15 2002/11/15 00:00:00 6 2002/11/15 2002/11/15 00:00:00 10 2015/03/27 2015/03/27 00:00:00 7行が選択されました。
尚、対象データが NULL の場合はNULLが返されます。
(例を以下に記します。)
SQL> SELECT 2 '/' || NVL(TO_CHAR(NULL, 'YYYY/MM/DD'), 'NULL') || '/' "NULLテスト" 3 FROM DUAL; NULLテスト ------------ /NULL/