最近公司要统计一年内每周的注册用户数,销售量,成交量。分享一下在开发是遇到的问题。如果文章中有错误的地方尽请见谅
1 MySQL 周数统计 (week函数)
首先说一下mysql数据库统计使用week(Str/date,number) 第一个参数是字符串或者日期,第二个参数是数字
接下来我介绍一下week函数使用的示例
select week(‘2015-11-17’,1) 2015年11月17号在改年中是第47周
其中week函数中的第二个参数number的值得用法
Number |
一周的第一天 |
范围 |
Week 1为第一周 |
0 |
周日 |
0~53 |
本年度中有一个周日 |
1 |
周一 |
0~53 |
本年度中有3天以上 |
2 |
周日 |
1~53 |
本年度中有一个周日 |
3 |
周一 |
1~53 |
本年度中有3天以上 |
4 |
周日 |
0~53 |
本年度中有3天以上 |
5 |
周一 |
0~53 |
本年度中有一个周一 |
6 |
周日 |
1~53 |
本年度中有3天以上 |
7 |
周一 |
1~53 |
本年度中有一个周一 |
WEEK('2015-11-17')只使用一个参数,它的第二个参数则为default_week_format默认值,MySQL中该值默认为 0
下面是开发过程中统计每周注册用户的数量使用的sql
其中post_date是注册时间的字段
SELECT WEEK(u.post_date,1),COUNT(*)
FROM USERS u WHERE 1=1
AND u.post_date>='2015-01-01'
AND u.post_date<='2015-12-31'
GROUP BY WEEK(u.post_date,1)
注意:week的参数使用1 符合我们正常的周数的显示
Mysql还有一个WEEKOFYEAR(d) 的函数
一年中的第几个星期。范围是从1~53,相当于WEEK(d,3)。
但是针对于一些特殊的他会有一些问题例如查询2014年的12月31号用weekofyear他会把当天看成是2015年的第一周