如何在mysql月份之间拆分两周之间的两个日期

时间:2017-02-15 10:26:39

标签: mysql

我想根据周数显示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

我正在尝试应用查询,但我无法执行此操作。 我很长时间都面临这个问题,但仍然无法修复。

1 个答案:

答案 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');