TIMESTAMP型から年月日等の値のみを取得するには、EXTRACT関数を使用します。
サンプル
例)systimestampから年月日等の値を取得する
1 2 3 4 5 6 7 8 9 10 11 12 |
select systimestamp ,EXTRACT(YEAR FROM systimestamp) ,EXTRACT(MONTH FROM systimestamp) ,EXTRACT(DAY FROM systimestamp) ,EXTRACT(HOUR FROM CAST(systimestamp AS timestamp)) ,EXTRACT(MINUTE FROM systimestamp) ,EXTRACT(SECOND FROM systimestamp) ,EXTRACT(TIMEZONE_HOUR FROM systimestamp) ,EXTRACT(TIMEZONE_MINUTE FROM systimestamp) ,EXTRACT(TIMEZONE_REGION FROM systimestamp) ,EXTRACT(TIMEZONE_ABBR FROM systimestamp) FROM dual; |
要素 | 指定する値 | 取得値例 | 備考 |
---|---|---|---|
年 | YEAR | 2018 | |
月 | MONTH | 5 | |
日 | DAY | 15 | |
時 | HOUR | 11 | Date型は使用不可 ※SYSTIMESTAMPはTIMESTAMP型にキャストが必要 |
分 | MINUTE | 5 | Date型は使用不可 |
秒 | SECOND | 13.605 | Date型は使用不可 |
時タイムゾーン | TIMEZONE_HOUR | 9 | Date型は使用不可 |
分タイムゾーン | TIMEZONE_MINUTE | 0 | Date型は使用不可 |
タイムゾーン名称 | TIMEZONE_REGION | UNKNOWN | Date型は使用不可 |
タイムゾーン略称 | TIMEZONE_ABBR | UNK | Date型は使用不可 |
解説
- 他の方法としては、TO_CHAR関数で取得したい日付要素のフォーマットを指定する方法もあります。
(例)年を取得する ⇒ TO_CHAR(systimestamp, 'yyyy')