Oracle extract函数用法

Oracle extract函数用法


//oracle中extract()函数从oracle 9i中引入,用于从一个 date 或者interval类型中截取到特定的部分   
//语法如下:   
EXTRACT (   
         { YEAR | MONTH | DAY | HOUR | MINUTE | SECOND }   
         | { TIMEZONE_HOUR | TIMEZONE_MINUTE }   
         | { TIMEZONE_REGION | TIMEZONE_ABBR }   
FROM { date_value | interval_value } )   
//我们只可以从一个 date 类型中截取 year , month , day ( date 日期的格式为yyyy-mm-dd);   
//我们只可以从一个 timestamp with time zone 的数据类型中截取TIMEZONE_HOUR和TIMEZONE_MINUTE;   
select extract( year from date '2011-05-17' ) year from dual;   
       YEAR   
----------   
       2011   
select extract( month from date '2011-05-17' ) month from dual;   
      MONTH   
----------   
          5   
select extract( day from date '2011-05-17' ) day from dual;   
        DAY   
----------   
         17   
//获取两个日期之间的具体时间间隔,extract函数是最好的选择   
select extract( day from dt2-dt1) day   
       ,extract( hour from dt2-dt1) hour   
       ,extract( minute from dt2-dt1) minute   
       ,extract( second from dt2-dt1) second   
from (   
      select to_timestamp( '2011-02-04 15:07:00' , 'yyyy-mm-dd hh24:mi:ss' ) dt1   
            ,to_timestamp( '2011-05-17 19:08:46' , 'yyyy-mm-dd hh24:mi:ss' ) dt2   
      from dual)   
/   
        DAY       HOUR     MINUTE     SECOND   
---------- ---------- ---------- ----------   
        102          4          1         46   
--   
select extract( year from systimestamp) year   
       ,extract( month from systimestamp) month   
       ,extract( day from systimestamp) day   
       ,extract( minute from systimestamp) minute   
       ,extract( second from systimestamp) second   
       ,extract(timezone_hour from systimestamp) th   
       ,extract(timezone_minute from systimestamp) tm   
       ,extract(timezone_region from systimestamp) tr   
       ,extract(timezone_abbr from systimestamp) ta   
from dual   
/   
      YEAR      MONTH        DAY     MINUTE     SECOND         TH         TM TR         TA   
---------- ---------- ---------- ---------- ---------- ---------- ---------- --------- ----------   
       2011          5         17          7     14.843          8          0 UNKNOWN   UNK   
//

参考:

INTERVAL YEAR TO MONTH和TIMESTAMP WITH TIME ZONE 等


你可能感兴趣的:(Oracle extract函数用法)