1.MySql按日,按月,按年,按周分组统计数据
#按日查询
SELECT DATE_FORMAT(time,'%Y-%m-%d') theTime, sum(score) FROM timi GROUP BY theTime;
#按月查询
SELECT DATE_FORMAT(time,'%Y-%m') theTime, sum(score) FROM timi GROUP BY theTime;
#按年查询
SELECT DATE_FORMAT(time,'%Y') theTime, sum(score) FROM timi GROUP BY theTime;
#按周查询
SELECT DATE_FORMAT(time,'%Y-%u') theTime, sum(score) FROM timi GROUP BY theTime;
2.日期函数
select theTime,Date(theTime),YEAR(theTime),MONTH(theTime) from timi where Date(theTime) = '2020-08-22';
Date('2020-08-22 17:20:02') : 获取年月日--->2020-08-22
Year('2020-08-22 17:20:02') : 获取年--->2020
Month('2020-08-22 17:20:02') : 获取月--->8
DAYOFWEEK('2020-08-22 17:20:02') : 返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)--->7
WEEKDAY('2020-08-22 17:20:02') : 返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)--->5
DAYOFMONTH('2020-08-22 17:20:02') : 返回date的月份中日期,在1到31范围内--->22
DAYOFYEAR('2020-08-22 17:20:02') : 返回date在一年中的日数, 在1到366范围内 --->235
DAYNAME('2020-08-22 17:20:02') : 返回date的星期名字--->Saturday
MONTHNAME('2020-08-22 17:20:02') : 返回date的月份名字--->August
QUARTER('2020-08-22 17:20:02') : 返回date一年中的季度,范围1到4--->3
3.查询2013年1月份数据
select * from product where date(add_time) between '2013-01-01' and '2013-01-31';
4.选择30天内的数据
SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(theTime) <= 30;
参考:
感谢:https://www.cnblogs.com/shaoing/p/8971758.html
感谢:https://www.jb51.net/article/138562.htm