Oracle SQL 関数 : EXTRACT : 日時フィールドを返す
datetimeRet := EXTRACT( [YEAR,MONTH,DAY,HOUR,MINUTE,SECOND] FROM exp1 );
EXTRACTはexp1の指定された日時フィールドを返します。
2 EXTRACT( YEAR FROM TO_DATE( '2004/10/20' )) AS YEAR |
3 ,EXTRACT( MONTH FROM TO_DATE( '2004/10/20' )) AS MONTH |
4 ,EXTRACT( DAY FROM TO_DATE( '2004/10/20' )) AS DAY |
5 ,TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS' ) AS SYSTEM_DATE |
6 ,EXTRACT( HOUR FROM TO_TIMESTAMP(TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS' ))) AS HOUR |
7 ,EXTRACT( MINUTE FROM TO_TIMESTAMP(TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS' ))) AS MINUTE |
8 ,EXTRACT( SECOND FROM TO_TIMESTAMP(TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS' ))) AS SECOND |
YEAR MONTH DAY SYSTEM_DATE HOUR MINUTE SECOND |
2004 10 20 2004/10/20 11:59:07 11 59 7 |
上記のSQLでは2~4行では年,月,日の値をそれぞれ返し、6~8行では時,分,秒を返します。
6~8のTIMESTAP型データをDATE型に変更するとエラーが発生します。
時,分,秒を取得するにはTIMESTAP型データでなければならない様です。
本書用のWebアプリを使ってSQLを実行し学習していきます。初心者の方に分かりやすく、図表を多く使って解説されています。 学習の最後には200問越えのドリルが付いていてSQLのスキルが試せる様になっています。