1. 程式人生 > >MySql 求一段時間範圍內的每一天,每一小時,每一分鐘

MySql 求一段時間範圍內的每一天,每一小時,每一分鐘

pda join 月份 nbsp 獲取 pan 關聯 orm now()

平常經常會求一段時間內的每一天統計數據,或者每一時點的統計數據。但是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

MySql 求一段時間範圍內的每一天,每一小時,每一分鐘