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)

SQL Server中用convert()获取日期时间字段的日期格式输出

--将日期时间字段b.OutDateTime以日期格式'1996-05-01'输出
convert(char(10),b.OutDateTime,21)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值