Oracle中时间截取函数extract()与ceil()

本文是关于在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); 
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  

用ceil()获取两时间的相差天数

--获取a.stop_date_time与a.start_date_time之间的相差天数
ceil(a.stop_date_time - a.start_date_time)

参考文章:
Oracle中extract()截取时间值函数

猜你喜欢

转载自blog.csdn.net/phoenixmajie/article/details/82185487