Oracle SQL 関数 : TO_DATE : 文字列の日付型へ変換
dateRet := TO_DATE( stringSrc [ , stringFormat [ , nlsParam ] ] );
TO_DATEは文字列型データstringSrcを日付書式stringFormatに従ってDATE型のデータを返します。
stringFormatを指定しない場合はデフォルトの日付書式に従います。
nlsParamは月、日の名称及び略称の言語を指定します。
SQL> SELECT TO_DATE( '2002/10/01 12:30:00' , 'YYYY/MM/DD HH24:MI:SS' ), |
2 TO_CHAR(TO_DATE( '2002/10/01 12:30:00' , 'YYYY/MM/DD HH24:MI:SS' ), 'YYYY/MM/DD HH24:MI:SS' ) |
TO_DATE( TO_CHAR(TO_DATE('20 |
02-10-01 2002/10/01 12:30:00 |
TO_DATE 関数は「stringSrc」が日付文字列として正しくない場合以下の様にエラーが発生します。
2 TO_DATE( '2002/99/01 12:30:00' , 'YYYY/MM/DD HH24:MI:SS' ) "日付文字列エラー" |
TO_DATE( '2002/99/01 12:30:00' , 'YYYY/MM/DD HH24:MI:SS' ) "日付文字列エラー" |
2 TO_DATE( '2002/01/91 12:30:00' , 'YYYY/MM/DD HH24:MI:SS' ) "日付文字列エラー2" |
TO_DATE( '2002/01/91 12:30:00' , 'YYYY/MM/DD HH24:MI:SS' ) "日付文字列エラー2" |
ORA-01847: 月単位の日付は1から月末日の間で指定する必要があります |
TO_DATE 関数は「stringSrc」が NULL の場合は結果 NULL が返ります。
そのため、TO_DATE の返り値を NVL でラップしてデフォルト値を設定すると以下の様になります。
2 NVL(TO_DATE( NULL , 'YYYY/MM/DD HH24:MI:SS' ), TO_DATE( '2000/01/01' )) |
本書用のWebアプリを使ってSQLを実行し学習していきます。初心者の方に分かりやすく、図表を多く使って解説されています。 学習の最後には200問越えのドリルが付いていてSQLのスキルが試せる様になっています。