MySql 求一段时间范围内的每一天,每一小时,每…

2018-06-17 23:58:58来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

平常经常会求一段时间内的每一天统计数据,或者每一时点的统计数据。但是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

 转发请标明出处

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:lnmp重置mysql数据库root密码

下一篇:【MySQL大系】《Mysql集群架构》