mysql按周统计数据简述

概述

业务中经常会遇到按年月日统计的场景;
但有时会有按周统计的情况;
我一般是用3种方法去解决:

  1. 利用mysqlweekday函数。计算出当前日期是一周中的第几天,然后当前日期 - 这个数值,就可以得到当前周的周一的日期;然后直接group by即可
  2. 利用week函数,可以直接拿到当前日期是一年中的第几周;然后直接group by即可;(注意week函数需要设置mode,不同的mode返回的值不同)
  3. 利用YEARWEEK函数,返回的是年+周;然后group即可。(同样也需要填充mode,默认mode0

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

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值