mysql中week()函数是用来做周的统计和计算,返回日期的周数
例如统计今年每周有多少个注册用户
SELECT count(id) as count,week(create_time,1) as weeks FROM user WHERE create_time > '2020' and create_time<'2011' GROUP BY weeks;
sql里面的weeks就是第几周
WEEK(date, mode);有两个参数
1、date
是要获取周数的日期
2、mode是一个可选参数,用于确定周数计算的逻辑
mode参数比较难理解,下面做个表格解释一下
模式 | 一周的第一天 | 范围 | 说明 |
0 | 星期日 | 0-53 | 遇到本年的第一个星期天开始,是第一周。前面的计算为第0周。 |
1 | 星期一 | 0-53 | 假如第一周能超过3天,那么计算为本年的第一周。否则为第0周 |
2 | 星期日 | 1-53 | 遇到本年的第一个星期天开始,是第一周。 |
3 | 星期一 | 1-53 | 假如第一周能超过3天,那么计算为本年的第一周。否则为上年度的第5x周。 |
4 | 星期日 | 0-53 | 假如第一周能超过3天,那么计算为本年的第一周。否则为第0周 |
5 | 星期一 | 0-53 | 遇到本年的第一个星期一开始,是第一周。 |
6 | 星期日 | 1-53 | 假如第一周能超过3天,那么计算为本年的第一周。否则为上年度的第5x周。 |
7 | 星期一 | 1-53 | 遇到本年的第一个星期一开始,是第一周。 |