mysql每隔俩小时、四小时、八小时进行数据统计

  1. 需求:我们经常会遇到每隔一分钟、一小时、一天、一个月进行数据统计,遇到如标题所说的统计信息比较少见,在遇到一些坑之后,解决了问题,先上坑:

    • HOUR % 时间间隔: 这种只能取出 余数为0 的那个时间的思路。
  2. 解决思路(每隔两小时进行统计):
    先处理HOUR,得到数据之后,在求和:

  3. sql语句:

SELECTDATE_FORMAT(concat(date( time ),' ',FLOOR( HOUR ( time ) / 2 ) * 2),'%Y-%m-%d %H:%00:00' ) AS time,`msg`.`status`,`msg_b`.`name`,COUNT( `msg`.`status` ) AS `status__count`
FROMmsg INNER JOIN `msg_b` ON ( `msg`.`operator_name` = `msg_b`.`smpp_cid` )
WHERE( `msg`.`status` IN ( 1, 2 ) AND `msg`.time >= '2019-11-01 13 : 43 : 22.506465' AND `msg`.time <= '2019-11-29 13 : 43 : 22.506482' )
GROUP BY`msg`.`status`,`msg_b`.`name`,(DATE_FORMAT( CONCAT( DATE( time ), ' ', FLOOR( HOUR ( time ) / 2 ) * 2 ), '%Y-%m-%d %H:00:00' )  )
ORDER BY
time
  1. 重点是这段语句:
DATE_FORMAT(concat(date( time ),' ',FLOOR( HOUR ( time ) / 2 ) * 2),'%Y-%m-%d %H:%00:00' ) AS time

GROUP BY`msg`.`status`,`msg_b`.`name`,(DATE_FORMAT( CONCAT( DATE( time ), ' ', FLOOR( HOUR ( time ) / 2 ) * 2 ), '%Y-%m-%d %H:00:00' )  )
  1. 更需要注意的是,group by的date格式要和select中的保持一致,不然出来的日期会有重复!也就达不到分组统计的效果了,最后,献上django的orm写法:
base_queryset.extra(select={"time": "DATE_FORMAT(CONCAT(DATE( time ),' ',FLOOR( HOUR ( time ) / 2 ) * 2),'%%Y-%%m-%%d %%H:00:00')"}).values('field1', 'field2', 'time').annotate(models.Count('status'))

mysql每隔俩小时、四小时、八小时进行数据统计相关推荐

  1. Mysql日志时间与系统时间相差八小时

    Mysql应用日志时间与系统时间相差八小时 我这以mysql慢查询日志为例,通过查看慢查询日志,发现日志时间与服务器系统时间相差为八小时 原因: 系统默认的log_timestamps为UTC,协调世 ...

  2. 八小时之内、八小时之外

    很少有机会和大家聊天,最近想起自己刚工作的时候的情形,有一点点感触. 我和徐向华都是98年毕业参加工作到海信的.开始的时候在海信计算机公司做信息管理软件,我主要负责进销存模块的开发,刚参加工作的时候可 ...

  3. hadoop系列十八——案例 App数据统计与报表统计

    项目背景 网站.app的运营者需要知道自己的产品或服务的运营状况,就需要对使用自己产品的用户进行各种角度的数据分析,比如: 用户数量 新增用户 留存用户 活跃用户 地域分析 渠道分析 - 要做这样的分 ...

  4. Android产品研发(八)--App数据统计

    转载请标明出处:一片枫叶的专栏 上一篇文章中我们介绍了Android社区中比较火的热修复功能,并介绍了目前的几个比较流行的热修复框架,以及各自的优缺点,同时也介绍了一下自身项目中对热修复功能的实践.目 ...

  5. 上班那些事儿之工作八小时

    (一) 闲来无事,上网搜了"八小时工作制".         在1886年5月1日,美国芝加哥的二十一万六千余名工人为争取实行八小时工作制而举行大罢工,经过艰苦反复的流血斗争,并得 ...

  6. MySQL插入时间差八小时问题解决

    MySQL插入时间差八小时问题解决 最近使用docker安装了mysql,日期字段类型为timestamp,jpa插入数据后发现与本地时间相差8个小时,各种百度谷歌答案无果,经历了若干次的试验之后,特 ...

  7. 系统时间与docker中mysql数据库时间相差八小时解决方法

    情景:在项目中往数据库差数据时,发现时间字段在mysql显示的时间和当前系统时间老是相差八小时,查看可能是mysql当前时区没设置好的问题. 一.docker exec -it your_mysql_ ...

  8. Java 与 Mysql 时间相差八小时

    Java 与 Mysql 时间相差八小时 在项目中发现,Java获取时间插入到数据库少了8小时 解决过程 最终解决方案 在项目中发现,Java获取时间插入到数据库少了8小时 其实初衷是想做定时去跑我需 ...

  9. mysql select now() 读取时间和实际时间有误差差8八小时 --最全解决过程

    问题: 环境: docker + linux + mysql bug : 测试环境下工单列表刚发布的信息显示为7小时前(正常该是0小时前:以小时为单位) 追究: 首先想到是服务器时间不对用查看当前服务 ...

最新文章

  1. 线性回归数据_数据科学笔记(三)——线性回归
  2. 在VS2010开发的MVC3 应用程序中设定默认的浏览器
  3. Sound recording and encoding in MP3 format.
  4. C语言 动态开辟内存管理
  5. vue 声明周期函数_vue-router路由守卫-上
  6. jbpm与OA项目开发过程实录 (二)
  7. JDBC.property 配置文件中链接数据库的配置
  8. windows下使用Wireshark调试chrome浏览器的HTTP/2流量
  9. 雷赛运动控制卡DMC2410入门篇
  10. 数学建模需要的Matlab知识速成
  11. yuv420转rgba
  12. 中国企业应用软件的几次大战
  13. c语言累加和求平均数程序,c语言编程:连续输入若干个正整数,求其和及其平均值,直到输入0结束....
  14. JsDroid3插件扩展
  15. android三星s8底部菜单,三星Galaxy S8/S8+国行获更新:导航栏可隐藏/视野更宽阔
  16. 简明c语言,简明易懂的C语言俄罗斯方块
  17. 货币等额换算_换算单位和货币的最佳免费程序和网站
  18. Python基本数据类型-字符串的操作
  19. BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏
  20. 在mtk移植个linux内核,移植 Linux Kernel 造成無法開機之解決方案以及除錯工具

热门文章

  1. android日历编程,Android自定义日历Calender代码实现
  2. 10 年了,这个程序员社区终于被收购了!
  3. 联想ghost重装系统_手动ghost安装系统详细操作步骤
  4. 关于使用burpsuite时,“安全连接失败,使用了无效的证书”问题【已解决】
  5. 2022最新!视觉SLAM综述(多传感器/姿态估计/动态环境/视觉里程计)
  6. 杨元庆十年前指明SMB电脑方向
  7. 上海西门子培训-第一天(周末)
  8. 要想加入红队,需要做好哪些准备?
  9. C语言实现在15*15的大棋盘中下五子棋(支持人机博弈,人人博弈)
  10. PMP学员:项目管理的重要性