1.获取本月的数据
select count(*) as monthNum
from user
where
DATE_FORMAT(create_time,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m');
date_format(date,format)
用于以不同的格式显示日期/时间数据
date:合法的日期
format:规定日期/时间的输出格式
基本上都以%开头。其中,常见的有:
%Y(年,4位) %y(年,2位) %M(月名) %m(月,数值0-12) %D(带有英文前缀的月中的天) %d(月的天,数值0-31)
2.获取本周的数据
select count(*) as weekNum
from user
where
YEARWEEK(date_format(create_time,'%Y-%m-%d'),1) = YEARWEEK(now(),1);
YEARWEEK(date,firstdayofweek)
date:必选。从中提取年和周数的日期或日期时间值
firstdayofweek:不必选(默认是0)。指定星期几
我认为,在正常的场景中关于周的都是查特定某一周,比如本周的数据。那怎么确定一周的边界呢,因为在我们中国的习惯是周一才是一周的第一天,所以firstdayofweek都赋值为1。
实例论证firstdayofweek参数是0和1的区别
我的mysql版本如图所示5.7.22
这是下面要进行实验的日历
可以看出,当firstdayofweek=0时,一周的第一天是周日,而firstdayofweek=1时,一周的第一天是周一