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

 轉發請標明出處


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM