zoukankan      html  css  js  c++  java
  • mysql按照秒、分钟、小时、天、月、年统计数量

    压力测试的时候,需要知道每个时间段的qps,sql如下

    按照秒统计:

     1 SELECT
     2     DATE_FORMAT( create_datetime, '%s' ) tim,
     3     count(*) count 
     4 FROM
     5     chat_message 
     6 WHERE
     7     create_datetime >= '2021-02-21 21:10:00' 
     8     AND create_datetime < '2021-02-25 21:20:00' 
     9 GROUP BY
    10     DATE_FORMAT( create_datetime, '%s' ) 
    11 ORDER BY
    12     tim DESC;

    运行结果:

    tim   count
    59
    13 58 10 .. .. 00 6

    原理:通过date_format函数取时间的秒级数据.

    例子:按照小时统计一天的数据量

     1 SELECT
     2     DATE_FORMAT( create_datetime, '%H' ) tim,
     3     count(*) count
     4 FROM
     5     chat_message
     6 WHERE
     7     create_datetime >= '2021-05-24 00:00:00'
     8     AND create_datetime <= '2021-05-24 23:59:59'
     9 GROUP BY
    10     DATE_FORMAT( create_datetime, '%H' )
    11 ORDER BY
    12     tim DESC;

    按照时:分统计时间段内的平均响应时间

    1 SELECT
    2     DATE_FORMAT( create_datetime, '%H:%i' ) AS '时间',
    3     SUM( duration )/ count( duration ) AS '平均响应时间' 
    4 FROM
    5     ( SELECT TRUNCATE (( TIMESTAMPDIFF( MICROSECOND, msg_datetime, create_datetime ))/ 1000000, 6 ) duration, create_datetime FROM chat_message WHERE create_datetime >= '2021-05-24 10:00:00' AND create_datetime <= '2021-05-24 10:15:59' ) t 
    6 GROUP BY
    7     DATE_FORMAT( create_datetime, '%H:%i' );

    date_format函数使用:

    DATE_FORMAT(date,format)
    date是参数的合法日期,format规定日期/时间的输出格式。

    格式描述
    %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:练习题3】查询在 SC 表存在成绩的学生信息
    【sql:练习题2】查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩
    学习设计模式之动态代理
    学习设计模式之静态代理
    学习设计模式之装饰器模式
    学习设计模式之策略模式
    学习设计模式之简单工厂
    Ehcache3.x学习(二)分层的选项
    Ehcache3.x学习(一)入门
    java进行微信h5支付开发
  • 原文地址:https://www.cnblogs.com/hpzyang/p/14470614.html
Copyright © 2011-2022 走看看