我想根据周数显示MySQL中的行数。 假设我们通过jan startdate 2017-1-1和endDate 2017-1-31然后totdal天是31.我们必须除以7然后它将是4周和3天所以总共5周所以我必须显示这样
为jan
WeekRow
1
2
3
4
5
for Feb
WeekRow
1
2
3
4
我正在尝试应用查询,但我无法执行此操作。 我很长时间都面临这个问题,但仍然无法修复。
答案 0 :(得分:0)
下面的代码正在努力摆脱你的问题。 我已经快点写了这段代码.....稍后我会优化这个...... 看看..如果你有任何问题需要了解它......
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_month_days_split`(in in_start_date datetime , in in_end_date datetime)
BEGIN
declare temp_date datetime;
declare temp_date_data int ;
drop temporary table if exists temp_split;
create temporary table temp_split
(
number bigint not null
);
while(in_start_date <= in_end_date)
do
set temp_date = (select date_add(in_start_date,interval 7 day));
set temp_date_data = (select day(date_add(in_start_date,interval 6 day)));
set @temp_last_number = (select number from temp_split order by number desc limit 1);
if(temp_date_data % 7) =0
Then
insert into temp_split(number)
select (temp_date_data/7);
else
insert into temp_split(number)
select @temp_last_number+1;
end if ;
set in_start_date = temp_date ;
end while;
select * from temp_split;
END
致电
call sp_month_days_split('2017-12-01', '2017-12-31');