select stat_date
, weekday(stat_date)
, if(weekday(stat_date) = 6
, date_add(stat_date, INTERVAL 1 DAY)
, date_sub(stat_date, INTERVAL (weekday(stat_date)) DAY)
)
from
table_name
where subject_type = '不限'
group by stat_date
, weekday(stat_date)
, if(weekday(stat_date) = 6
, date_add(stat_date, INTERVAL 1 DAY)
, date_sub(stat_date, INTERVAL (weekday(stat_date)) DAY)
)
order by stat_date
limit 30
;
WEEKDAY的0表示,周一。
我这里的一周,开始日期是周日,所以调整了一下。