如图所示,是数据库数据结构,有创建日期和创建周,创建周是年+第几周的格式
现在创建周是入参,而且是一个范围值,比如202242到202245
需求是算出创建周至创建周这个范围内所有周每周一的数据,如何求出呢
WHERE DATEPART(DW,Z1STMP)=2)
# 获取本周一
SELECT DATE_sub(curdate(),INTERVAL date_format(curdate(),'%w')-1 day)
最简单,最一劳永逸的方法就是,数据库再加一个日历表,存每天的日期和每天对应是周几,是第几周,数据有了之后,就直接把上面那个周的范围作为条件,取星期等于 1 的日期,结果就是每周周一对应的日期了
mysql的话
WEEKDAY(Z1STMP)=2 条件就是取周一的只,你再按你的创建周汇总就行了
DATENAME(weekday, Z1STMP)='星期一'