`
joomla2009
  • 浏览: 10957 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一条sql 解决oracle 按照任意时间段分组统计

阅读更多
经过n次实验,总算搞出这个让我因为按照半个小时统计的痛苦,在也不用写n条sql组织起来了。
方法一:
select round(to_number(to_char(sysdate,'yyyymmddhh24mi'))/10) from dual

方法二:
select  count(1),
       to_date('19700101000000', 'yyyymmddhh24miss') +
       FLOOR(((t.starttime - to_date('19700101000000', 'yyyymmddhh24miss')) *
        86400) / (60*60*24*5)) * (60*60*24*5) / 86400 cur_date
  from frame_tb_app_accessmonitor t
  group by  to_date('19700101000000', 'yyyymmddhh24miss') +
       FLOOR(((t.starttime - to_date('19700101000000', 'yyyymmddhh24miss')) *
        86400) / (60*60*24*5)) * (60*60*24*5) / 86400
  ;
需要改动的地方。是60*60*24*5,,这个是什么意思,,大家应该很明白了吧。
上面方法在半个小时的时候没有什么问题,但是在一个小时,一天,一月的情况下,会出现时间越界的现象.
为了彻底解决上面问题,我写个oralce函数对trunc函数的一次封装,使其支持半个小时的操作.
**
/*
对原有日期函数trunc进行一次封装,使其支持半个小时的分割.
*/
create or replace function sys_trunc( d in date ,fmt in varchar2)
return date
as
BEGIN
if fmt = 'm2'
then 
    return  to_date('1970-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') +
       FLOOR(((d- to_date('1970-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')) *
        86400) / (1800)) * (1800) / 86400 ;
else
    return TRUNC(d,fmt);
end if;
end;
按规定时间段统计,
调用方法:sys_trunc(date,type)
半小时:tyep= 'm2'
一小时:type='hh24'
一天  :type='dd'
一月  :type='mm'
分享到:
评论

相关推荐

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

     Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...

    SQL性能优化

     以上两个SQL中dy_dj(电压等级)及xh_bz(销户标志)两个字段都没进行索引,所以执行的时候都是全表扫描,第一条SQL的dy_dj = '1KV以下'条件在记录集内比率为99%,而xh_bz=1的比率只为0.5%,在进行第一条SQL的...

    C#程序开发范例宝典(第2版).part13

    一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...

    C#开发经验技巧宝典

    0882 如何对指定时间段进行查询 519 0883 对某期间的数据进行查询的几种方法 519 0884 NOT与谓词进行组合条件的查询 520 19.6 聚合函数 520 0885 聚合函数SUM的使用 520 0886 聚合函数AVG的使用 521 ...

    C#程序开发范例宝典(第2版).part08

    一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...

    C#程序开发范例宝典(第2版).part02

    一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...

    C#程序开发范例宝典(第2版).part12

    一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...

    C#.net_经典编程例子400个

    43 实例043 如何实现Office助手 44 1.13 窗体控制技术 45 实例044 在关闭窗口前加入确认对话框 45 实例045 使用任意组件拖动窗体 46 实例046 修改提示字体及颜色 47 1.14 其他技术 48...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例258 统计用户在线时间 339 实例259 限制用户访问网站的时间 340 实例260 用户来访时客户端创建COOKIE 341 实例261 删除客户端的COOKIE 343 实例262 使客户端浏览器支持COOKIE 344 5.2 SESSION 345 实例263 掌控...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例258 统计用户在线时间 339 实例259 限制用户访问网站的时间 340 实例260 用户来访时客户端创建COOKIE 341 实例261 删除客户端的COOKIE 343 实例262 使客户端浏览器支持COOKIE 344 5.2 SESSION 345 实例263 掌控...

    王中王羽毛球馆管理软件V5.3

    可以实现任意的您能想到的优惠方案,而设置时只需要增加一条价格规则。不像其他软件,您需要对每个场地不同时间,输入不同的价格,输到你头昏。其他的特点下面依次展开论述。 2.1场地价格定义灵活方便、功能强大。 ...

Global site tag (gtag.js) - Google Analytics