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);  
//我们只可以从一个 timestampwith time zone 的数据类型中截取TIMEZONE_HOUR和TIMEZONE_MINUTE;  
select extract(year fromdate'2011-05-17')year fromdual;  
      YEAR  
----------  
      2011  
select extract(month fromdate'2011-05-17')month fromdual;  
     MONTH  
----------  
      5  
select extract(day fromdate'2011-05-17')day from dual;  
       DAY  
----------  
        17  
//获取两个日期之间的具体时间间隔,extract函数是最好的选择  
select extract(day fromdt2-dt1) day  
      ,extract(hourfrom dt2-dt1) hour  
      ,extract(minutefrom dt2-dt1) minute  
      ,extract(secondfrom dt2-dt1) second  
from (  
     selectto_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  
     fromdual)  
/  
       DAY      HOUR     MINUTE    SECOND  
---------- ---------- ---------- ----------  
       102   4   1    46  
--  
select extract(year fromsystimestamp) year  
      ,extract(monthfrom systimestamp) month  
      ,extract(dayfrom systimestamp) day  
      ,extract(minutefrom systimestamp) minute  
      ,extract(secondfrom systimestamp) second  
      ,extract(timezone_hourfrom systimestamp) th  
      ,extract(timezone_minutefrom systimestamp) tm  
      ,extract(timezone_regionfrom systimestamp) tr  
      ,extract(timezone_abbrfrom systimestamp) ta  
from dual  
/  
     YEAR     MONTH        DAY    MINUTE     SECOND        TH         TM TR         TA  
---------- ---------- ---------- ---------- ---------- ---------- ---------- --------- ----------  
      2011  5    17   7   14.843   8         0  UNKNOWN       UNK  
//  

posted on 2016-05-31 18:42  菜鸟Z  阅读(137)  评论(0编辑  收藏  举报

导航