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 位
    分享促进成长
  • 相关阅读:
    ExtJs之Grid
    [java]转:String Date Calendar之间的转换
    SQL Server脚本备份
    Java实现文件夹的复制(包括子文件夹与文件)
    Android webview使用详解
    zxing条码扫描横屏修改
    Genymotion的安装与eclipse配置教程
    开发中遇到的问题
    sql中COUNT()+GROUP BY +HAVING的组合使用
    由于包名与引用的库名相同导致的报错
  • 原文地址:https://www.cnblogs.com/hpzyang/p/14470614.html
Copyright © 2011-2022 走看看