欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql获取每月的周的时间段

程序员文章站 2022-07-01 09:42:59
...

以下sql复制粘贴后可以直接运行:                

 set @fd= (  DATE_ADD(CONCAT('2021-09','-01'),interval -day(CONCAT('2021-09','-01'))+1 day));   -- 获取本月第一天
set @ld= (  last_day(CONCAT('2021-09','-01')));  -- 获取当月最后一天
                                


         set @fw= (subdate(@fd,date_format(@fd,'%w')-1)) ; -- 获取本月第一天在本周的周一
         set @lw= (subdate(@ld,date_format(@ld,'%w')-7) ); -- 获取当月最后一天在本周的周日

                set @[email protected]; -- 第一周周一
                set @owl=subdate(@fw,date_format(@fw,'%w')-7); -- 第一周周日

                set @twf=DATE_ADD(@owl,INTERVAL 1 DAY); -- 第二周周一
                set @twl=subdate( @twf,date_format( @twf,'%w')-7); -- 第二周周日

                set @swf=DATE_ADD(@twl,INTERVAL 1 DAY); -- 第三周周一
                set @swl=subdate( @swf,date_format( @swf,'%w')-7); -- 第三周周日

                set @fwf=DATE_ADD(@swl,INTERVAL 1 DAY); -- 第四周周一
                set @fwl=subdate( @fwf,date_format( @fwf,'%w')-7); -- 第四周周日


                set @wwf=DATE_ADD(@fwl,INTERVAL 1 DAY); -- 第五周周一
                set @wwl=subdate( @wwf,date_format( @wwf,'%w')-7); -- 第五周周日

                set @lwf=DATE_ADD(@wwl,INTERVAL 1 DAY); -- 第六周周一
                set @lwl=subdate( @lwf,date_format( @lwf,'%w')-7); -- 第六周周日


               SELECT
                timestampdiff(week,@fw,@lw)  fd,
                    0 ld UNION ALL
                SELECT
                    @owf fd,
                    @owl ld UNION ALL
                SELECT
                    @twf fd,
                    @twl ld UNION ALL
                SELECT
                    @swf fd,
                    @swl ld UNION ALL
                SELECT
                    @fwf fd,
                    @fwl ld UNION ALL
                SELECT
                    @wwf fd,
                    @wwl ld UNION ALL
                SELECT
                    @lwf fd,
                    @lwl ld;  




                set @fd=null;
                set @ld=null;
                set @fw=null;
                set @lw=null;
                set @owf=null;
                set @owl=null;
                set @twf=null;
                set @twl=null;
                set @swf=null;
                set @swl=null;
                set @fwf=null;
                set @fwl=null;
                set @wwf=null;
                set @wwl=null;
                set @lwf=null;
                set @lwl=null;