mysql獲取近7天每天資料,無資料補0

2021-08-08 11:22:36 字數 1373 閱讀 1525

接到老大排的活,需要作出乙個統計最近7天每天的資料做統計用,最終呈現出這樣的效果;

因為公司庫裡面所有關於時間都是直接儲存時間戳,給我帶來了一定的處理上的難度,幸好網上找到乙個很好的想法;

處理方式是:構建乙個最近7天的結果集,沒有的利用ifnull函式補0操作;

最終的sql如下:

select a.click_date,ifnull(b.count,0) as count

from (

select curdate() as click_date

union all

select date_sub(curdate(), interval 1 day) as click_date

union all

select date_sub(curdate(), interval 2 day) as click_date

union all

select date_sub(curdate(), interval 3 day) as click_date

union all

select date_sub(curdate(), interval 4 day) as click_date

union all

select date_sub(curdate(), interval 5 day) as click_date

union all

select date_sub(curdate(), interval 6 day) as click_date

) a left join (

select date(from_unixtime(gettime/1000,'%y%m%d')) as datetime, count(*) as count

from userwechatcard

group by date(from_unixtime(gettime/1000,'%y%m%d'))

) b on a.click_date = b.datetime;

其中有個地方需要注意一下:由於我的時間是時間戳型別,而curdate函式返回的是yyyy-mm-dd形式,因此需要在left join的時候將我的時間戳字段gettime進行轉換,轉換成與curdate函式返回一樣的形式,否則就查不到資料;

最終結果:

mysql查詢今天 昨天 7天 近30天資料

mysql查詢今天 昨天 7天 近30天 本月資料進行 文件資料彙總也算mysql技巧了 愛微網親測成功 mysql查詢今天 昨天 7天 近30天 本月資料進行 文件資料彙總也算mysql技巧了 愛微網親測成功 date datetime null default null comment 時間 時...

mysql 查詢近7天資料,缺失補0

相信很多人的專案都有這種需求,就是查詢近7天的記錄,但是這7天總有那麼幾天是沒資料的,所以缺失的只能補 0 下面的 不知道能不能看懂,我簡單的說一下思路 1 先查詢紅色字型的近7天,再轉換成日期 2 我的字段使用的是時間戳的方式去儲存,只能是先資料庫欄位先轉日期 2.1 先查詢自己想要的資料,用每天...

獲取當天,昨天,近7天,近30天的起始時間戳

param type param string startdate param string enddate return array notes 獲取當天,昨天,近7天,近30天的起始時間戳 time 2020 12 25 15 12 author xinhua.zhi function getd...