Mysql获取每月的周的时间段

以下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 @owf=@fw; -- 第一周周一
                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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值