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/