oracle日期分组查询的完整实例
前言
在做数据报表时,需要对某一时间段分组,以1小时为时间间隔统计各项数据,如9点-10点,10点-11点…,但是现在有种情况,时间有可能不是整点开始,会有半点的情况,9点30,需要按照9点30-10点30,10点30-11点30分组统计
实现
以时间范围起始时间作为参照时间,计算与其差值(分)/所需时间间隔(1小时)
得出值作为分组依据。
例子
select xx, floor( floor( (refDate-to_date('2021-02-05 08:30','yyyy-MM-dd hh24:mi:ss')) * 24 * 60) / 60 ) factor where refDate >=to_date('2021-02-05 08:30','yyyy-MM-dd hh24:mi:ss') and refDate <=....
floor:取整用
refDate:每条数据中的日期字段
2021-02-05 08:30:参照时间
factor:算出的分组依据
以上查询范围是21:30-23:30,以21.30作为参照时间,可将时间段划分为21.30-22:30,22:30-23:30。。
在此基础上查询时间所属时间段
以上通过 factor/24 含义为间隔一小时, 可以通过改变这两个值任意组合时间间隔。
总结
到此这篇关于oracle日期分组查询的文章就介绍到这了,更多相关oracle日期分组查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
如何使用Oracle PL/SQL 实现发送电子邮件功能(UTL_MAIL)
这篇文章主要介绍了Oracle PL/SQL 实现发送电子邮件功能,今天主要给大家介绍使用UTL_MAIL实现发送电子邮件功能,具体实例代码跟随小编一起看看吧2021-08-08Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
Oracle 的安装和卸载相较于其他 mysql 要麻烦些,小编特此分享一篇教程关于Oracle11g 彻底卸载干净并重新安装,有需要的朋友可以参考下本文2021-06-06oracle11g管理员密码忘记怎么办 sqlplus解决忘记密码问题
oracle11g管理员密码忘记了怎么办?这篇文章主要介绍了oracle 11g管理员密码忘记问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-06-06在客户端配置TNS测试报错ORA-12170:TNS:连接超时
在Red Hat Enterprise Linux Server Releae 5.5 成功安装ORACLE 10g 后,在客户端配置TNS后,测试是否可以连接到数据块服务器,结果报错:ORA-12170:TNS:连接超时2012-12-12
最新评论