您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 揭阳分类信息网,免费分类信息发布

Oracle中时间处理及分时间段统计

2024/3/19 18:41:01发布23次查看
oracle 时间加减法 由于最近在做时段加减法相关的测试工作,在网上找到了一些关于时间加减方面的算法,正好可以解决燃眉之急,也希望
oracle 时间加减法
由于最近在做时段加减法相关的测试工作,在网上找到了一些关于时间加减方面的算法,正好可以解决燃眉之急,也希望能够帮到更多的oracle初学者!
加法
 select sysdate,add_months(sysdate,12) from dual;        --加1年
 select sysdate,add_months(sysdate,1) from dual;        --加1月
 select sysdate,to_char(sysdate+7,'yyyy-mm-dd hh24:mi:ss') from dual;   --加1星期
 select sysdate,to_char(sysdate+1,'yyyy-mm-dd hh24:mi:ss') from dual;   --加1天
 select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd hh24:mi:ss') from dual;  --加1小时
 select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd hh24:mi:ss') from dual;  --加1分钟
 select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd hh24:mi:ss') from dual;  --加1秒
减法
 select sysdate,add_months(sysdate,-12) from dual;        --减1年
 select sysdate,add_months(sysdate,-1) from dual;        --减1月
 select sysdate,to_char(sysdate-7,'yyyy-mm-dd hh24:mi:ss') from dual;   --减1星期
 select sysdate,to_char(sysdate-1,'yyyy-mm-dd hh24:mi:ss') from dual;   --减1天
 select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd hh24:mi:ss') from dual;  --减1小时
 select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd hh24:mi:ss') from dual;  --减1分钟
 select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd hh24:mi:ss') from dual;  --减1秒
按时间段统计:注意,,要根据oracle中实际的类型而对sql语句做相应的改变:
代码来源:
select to_char((trunc(sysdate)+trunc((dtime-trunc(sysdate))*24*60/30)*30/60/24),'hh24:mi')||'-'||to_char((trunc(sysdate)+trunc((dtime-trunc(sysdate))*24*60/30+1)*30/60/24),'hh24:mi') period, avg(v1),sum(v2),count(*) rows from test where trunc(dtime)=to_date(&day,'yyyymmdd') group by to_char((trunc(sysdate)+trunc((dtime-trunc(sysdate))*24*60/30)*30/60/24),'hh24:mi')||'-'||to_char((trunc(sysdate)+trunc((dtime-trunc(sysdate))*24*60/30+1)*30/60/24),'hh24:mi') order by 1;
我的修改:
select to_char((trunc(sysdate) +
               trunc((to_date(to_char(passvehicleinfo.passtime,
                                      'yyyymmdd hh24:mi:ss'),
                              'yyyymmdd hh24:mi:ss') - trunc(sysdate)) * 24 * 60 / 30) * 30 / 60 / 24),
       'hh24:mi') || '-' || to_char((trunc(sysdate) + trunc((to_date(to_char(passvehicleinfo.passtime, 'yyyymmdd hh24:mi:ss'), 'yyyymmdd hh24:mi:ss') - trunc(sysdate)) * 24 * 60 / 30 + 1) * 30 / 60 / 24), 'hh24:mi')
from passvehicleinfo
 group by to_char((trunc(sysdate) +
                  trunc((to_date(to_char(passvehicleinfo.passtime,
                                         'yyyymmdd hh24:mi:ss'),
                                 'yyyymmdd hh24:mi:ss') - trunc(sysdate)) * 24 * 60 / 30) * 30 / 60 / 24),
          'hh24:mi') || '-' || to_char((trunc(sysdate) + trunc((to_date(to_char(passvehicleinfo.passtime, 'yyyymmdd hh24:mi:ss'), 'yyyymmdd hh24:mi:ss') - trunc(sysdate)) * 24 * 60 / 30 + 1) * 30 / 60 / 24), 'hh24:mi')
更多oracle相关信息见oracle 专题页面 ?tid=12
揭阳分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录