zoukankan      html  css  js  c++  java
  • Mysql中与时间相关的统计分析

    最近项目需要统计一段日期范围内,根据每分钟、几分钟、每天分别统计汇总某些事件/指标的发生总次数,平均发生次数,因此总结了Mysql中与时间处理、统计相关的资料。

    按分钟统计某一时间段内的数据

    SELECT count(1), date_format(a5_firsttime, "%H:%i") as t from ccb_alerts group by t order by null
    

    这个统计汇总方法,可以按照每天、工作日(周一至周五)、小时、分钟、月等维度来汇总统计。Mysql的日期输出格式可以参考下面:

    输出格式 含义
    %a 缩写星期名
    %b 缩写月名
    %c 月,数值
    %D 带有英文前缀的月中的天
    %d 月的天,数值(00-31)
    %e 月的天,数值(0-31)
    %f 微秒
    %H 小时 (00-23)
    %h 小时 (01-12)
    %I 小时 (01-12)
    %i 分钟,数值(00-59)
    %j 年的天 (001-366)
    %k 小时 (0-23)
    %l 小时 (1-12)
    %M 月名
    %m 月,数值(00-12)
    %p AM 或 PM
    %r 时间,12-小时(hh:mm:ss AM 或 PM)
    %S 秒(00-59)
    %s 秒(00-59)
    %T 时间, 24-小时 (hh:mm:ss)
    %U 周 (00-53) 星期日是一周的第一天
    %u 周 (00-53) 星期一是一周的第一天
    %V 周 (01-53) 星期日是一周的第一天,与 %X 使用
    %v 周 (01-53) 星期一是一周的第一天,与 %x 使用
    %W 星期名
    %w 周的天 (0=星期日, 6=星期六)
    %X 年,其中的星期日是周的第一天,4 位,与 %V 使用
    %x 年,其中的星期一是周的第一天,4 位,与 %v 使用
    %Y 年,4 位
    %y 年,2 位

    如果想要统计一天之内,按照一定的分钟间隔汇总的数据,用SQL实现,还不知道有什么方便的方式,如果大家有相关的解决方案,可以分享一下。

    2017-05-31补充一下支持跨天的按照一定时间间隔统计汇总数量的SQL,例子是按照15分钟汇总统计

    select count(1), from_unixtime( round(unix_timestamp(a5_firsttime)/(15*60)) * 15*60) from ccb_alerts where a5_firsttime >= '2017-03-20 00:00:00' group by round(unix_timestamp(a5_firsttime)/(15*60)) 
    

    日期格式化函数

    Mysql日期、时间转换函数:date_format(date, format)、time_format(time,format)能够把一个日期/时间转换成各种各样的字符串。

    date_fromat(date, format)
    

    TIMSTAMPADD

    按照输入的间隔对日期进行计算。

    timestampadd(unit,interval,datetime_expr)
    
    select timestampadd(day, 1, '2008-08-08 08:00:00'); -- 2008-08-09 08:00:00
    

    TIMESTAMPDIFF

    Mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法:

    语法

    TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)

    说明

    返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。interval 的法定值同TIMESTAMPADD()函数说明中所列出的相同。

    参考资料:
    1、Mysql中Timstampdiff的用法
    2、Mysql的时间、日期函数
    3、Mysql Date Time Functions

  • 相关阅读:
    android studio学习----Android Studio导入github下载的工程--替换方法
    python+selenium 发送邮件
    vue 操作列的自定义
    vue作用域插槽实践
    vue左侧菜单的实现
    Django 解决跨域
    关于 with 语句
    docker
    python连接 ssh
    数据库建表 外键
  • 原文地址:https://www.cnblogs.com/cocowool/p/6888436.html
Copyright © 2011-2022 走看看