MySql 求一段時間範圍內的每一天,每一小時,每一分鐘
阿新 • • 發佈:2017-08-01
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 1DAY) 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 求一段時間範圍內的每一天,每一小時,每一分鐘