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; |
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 の対象として当然テーブルの中のカラムを指定できますので、例を以下に記します。
3 , TO_CHAR(売上日, 'YYYY/MM/DD' ) 売上日 |
4 , TO_CHAR(売上日, 'YYYY/MM/DD HH24:MI:SS' ) 売上日2 FROM TT_売上; |
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 |
尚、対象データが NULL の場合はNULLが返されます。
(例を以下に記します。)
2 '/' || NVL(TO_CHAR( NULL , 'YYYY/MM/DD' ), 'NULL' ) || '/' "NULLテスト" |
本書用のWebアプリを使ってSQLを実行し学習していきます。初心者の方に分かりやすく、図表を多く使って解説されています。 学習の最後には200問越えのドリルが付いていてSQLのスキルが試せる様になっています。