示例语句:
select count(),hour(c.created_at) from `behavior_client_view` c join `behavior_share` s
on c.share_uuid=s.uuid
where s.agent_uuid=(select uuid from user where mobile='' and deleted=)
and DATE_FORMAT(c.created_at,'%Y-%m') >DATE_FORMAT(date_sub(curdate(), interval month),'%Y-%m')
group by hour(c.created_at) order by hour(c.created_at);#近12个月时段统计分布
涉及到的MySQL知识点汇总:
1、date_format(date,format):函数根据format字符串格式化date值。
示例:select DATE_FORMAT(now(),'%Y-%m');
查询结果:2019-01
2、date_sub(date,interval exp type):函数从日期减去指定的时间间隔。
说明:date:参数是合法的日期表达式
expr;参数是您希望添加的时间间隔
type:参数值为:microsecond、second、minute、hour、day\week\month\quarter\year\seconde_microsecond\minute_microsecond\hour_microsecond\hour_second\hour_minute\day_microsecond\day_second\day_minute\day_hour\year_month
示例:
select date_sub(now(),interval 2 month); #查询:根据当前的时间减去2个月,计算得出的时间值
查询结果:2018-11-07 11:37:48
3、curdate():函数返回当前的日期
示例:select curdate();
查询结果:2019-01-07
扩展常用函数:
4、curtime():返回当前的时间
查询结果:11:37:48
最后:简单示例一条,select if(curdate()="2019-01-07",(select DATE_FORMAT(now(),'%Y-%m-%d')),1) as d;
5、/*获取当前系统时间:年月日 时分*/
select DATE_FORMAT(now(),'%Y-%m-%d %h:%m');
查询结果:2019-01-22 02:01