標籤:協助 now() val _for 系統 函數 擷取 set 關聯
平常經常會求一段時間內的每一天統計資料,或者每一時點的統計資料。但是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=1WHERE @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 fLEFT JOIN (SELECT @tempHour :=@beginDate) b ON 1=1WHERE @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 tLEFT JOIN (SELECT @tempMinute :=@beginDate) b ON 1=1WHERE @tempMinute <@maxDate
MySql 求一段時間範圍內的每一天,每一小時,每一分鐘