• MySql 求一段时间范围内的每一天,每一小时,每一分钟


    平常经常会求一段时间内的每一天统计数据,或者每一时点的统计数据。但是mysql本身是没有直接获取时点列表的函数或表。下面是自己用到的一些方法,利用临时变量和一个已存在的比较多数据(这个需要根据实际情况决定)的表做关联得到时点列表。希望对大家有所帮助。

    sql中用到的一些关键数据

    #t_table表是系统上已存在的一个有比较多数据的表

    一个月的每一天

    #2017年7月份的每一天
    SET @beginDate='2017-07-01';
    SET @maxDate ='2017-07-31';
    SELECT DATE(@tempDay),@tempDay:=DATE_ADD(@tempDay,INTERVAL 1 DAY)
    FROM t_table f #该表是系统上已存在的一个有比较多数据的表
    LEFT JOIN (SELECT @tempDay:=@beginDate) b  ON 1=1
    WHERE @tempDay<=@maxDate

    昨天的每一小时

    #昨天的每一小时
    SET @beginDate=DATE(DATE_ADD(NOW(),INTERVAL -1 DAY));
    SET @maxDate =DATE(NOW());
    SELECT DATE_FORMAT(@tempHour ,'%H'),@tempHour :=DATE_ADD(@tempHour,INTERVAL 1 HOUR)
    FROM t_table f
    LEFT JOIN (SELECT @tempHour :=@beginDate) b  ON 1=1
    WHERE @tempHour <@maxDate

    一小时内的每一分钟

    #一小时内的每一分钟
    SET @beginDate='2017-08-01 17:00:00';
    SET @maxDate ='2017-08-01 18:00:00';
    SELECT DATE_FORMAT(@tempMinute ,'%i'),@tempMinute :=DATE_ADD(@tempMinute,INTERVAL 1 MINUTE)
    FROM t_table t
    LEFT JOIN (SELECT @tempMinute :=@beginDate) b  ON 1=1
    WHERE @tempMinute <@maxDate

     转发请标明出处

  • 相关阅读:
    奶牛碑文
    快速幂算法——人见人爱A^B
    杨辉三角
    iis404 没有设置mime的后缀
    jquery的click和js的funcition中的参数不一样
    asp:timer的权限与操作注意
    .net 文件上传,只上传修改的东西
    vscode的配置 和xdebug配制
    emoji编码后存储
    php 服务器请求其它网页的方法
  • 原文地址:https://www.cnblogs.com/Jimmy-pan/p/MysqlTimeList.html
Copyright © 2020-2023  润新知