概述
业务中经常会遇到按年月日统计的场景;
但有时会有按周统计的情况;
我一般是用3种方法去解决:
- 利用
mysql的weekday函数。计算出当前日期是一周中的第几天,然后当前日期 - 这个数值,就可以得到当前周的周一的日期;然后直接group by即可 - 利用
week函数,可以直接拿到当前日期是一年中的第几周;然后直接group by即可;(注意week函数需要设置mode,不同的mode返回的值不同) - 利用
YEARWEEK函数,返回的是年+周;然后group即可。(同样也需要填充mode,默认mode是0)
weekday函数简述
weekday返回返回是0-6对应周一至周日;那么当前日期-这个值就是当前日期对应这一周的周一的年月日;
#当前日期 - 返回值
create_time - weekday(create_time) as monday
week函数简述
一般我用的是5,因为mode=5,不用分大小周,返回都是从周一开始算;
mode=1会有大小周,即跨年的那一周,最新那一年如果在跨年那周占据的天数少,那么返回0,占据天数多则返回1)

参考博文
https://blog.csdn.net/dmw412724/article/details/95318091







![[Python进阶] 制作动态二维码](https://img-blog.csdnimg.cn/direct/a862182f9466426a885edfacc42cba62.png)











