下面的代碼正在努力擺脫你的問題。 我已經寫在趕時間碼.....後來我會優化此... 有look..and讓我知道如果你有任何問題,瞭解它...
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');
你想做到這一點使用存儲過程的話,我可以幫你這個 –
是的,我需要在使用SP –