mysql 计算自然周距离现在多少周的方法
set @install = '2020-10-24 18:00:00';
select @install,
date_format(@install - interval dayofweek(@install) day + interval 1 day ,'%Y-%m-%d 00:00:00') as startDay,
dayofyear(date_format(@install - interval dayofweek(@install) day + interval 1 day ,'%Y-%m-%d 00:00:00')),
date_format(@install - interval dayofweek(@install) day + interval 7 day ,'%Y-%m-%d 23:59:59') as endDay,
weekofyear(date_format(@install - interval dayofweek(@install) day + interval 7 day ,'%Y-%m-%d 23:59:59')),
weekofyear(now()),
weekofyear(now()) - weekofyear(date_format(@install - interval dayofweek(@install) day + interval 1 day ,'%Y-%m-%d 00:00:00')) - 1;
以上方法测试是错误的。
以下为修正版本
set @install = '2020-10-24 00:10:10'; -- 周六 第1W
set @install = '2020-10-25 00:10:10'; -- 周日 第0W
set @install = '2020-10-26 00:10:10'; -- 周一 第0W
set @now = '2020-10-25 00:20:30'; -- 当前时间 周日 44,dayofweek = 1,weekofyear=43
set @now = '2020-10-24 00:00:00'; -- 当前时间 周六 43
set @now = '2020-10-26 01:00:00'; -- 当前时间 周一 44
select @now,@install, WEEKOFYEAR(@now) + if(dayofweek(@now)=1,1,0) - WEEKOFYEAR(@install) - if(dayofweek(@install)=1,1,0) AS dw;
博客纠正了之前计算MySQL中自然周与当前周相差周数的错误方法,并提供了修正后的解决方案。
4341

被折叠的 条评论
为什么被折叠?



