zoukankan      html  css  js  c++  java
  • 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

     转发请标明出处

  • 相关阅读:
    Google Guava官方教程(中文版)
    maven POM.xml 标签详解
    Linux内存文件系统tmpfs(/dev/shm)详细介绍
    linux 如何查看目录的剩余空间大小?
    CSS position绝对定位absolute relative
    java 笔记
    js笔记
    AFNetworking监控网络状态以及下载的进度条显示
    HTTPS网络请求时plist文件的设置
    KVO监测tableView的滑动
  • 原文地址:https://www.cnblogs.com/Jimmy-pan/p/MysqlTimeList.html
Copyright © 2011-2022 走看看