//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
// |
Oracle extract函数用法
最新推荐文章于 2025-07-10 21:52:22 发布