Mysql按日、周、月进行分组统计

我们在用Mysql抽取数据时候,经常需要按照天、周、月等不同的粒度对数据进行分组统计。而我们的时间可能是“2017/12/5 0:0:0”这种准确的时间。所以在进行分组之前我们需要对时间进行一下处理。

DATE_FORMAT是MySQL内置的一个函数,作用是以不同的格式显示日期/时间数据。具体的语法如下:

DATE_FORMAT(date,format),其中

date:合法的日期。format:规定日期/时间的输出格式,其中format可使用的格式见文末链接。

下面我们通过具体例子来看如何通过DATE_FORMAT进行分组统计:

下表两列分别代表产品买出的准确时间(精确到秒),和买出的产品类型。

start_time product_no
2017/12/1 00:00:11 2A
2017/12/3 07:51:11 3C
2017/12/3 07:59:25 3C
2017/12/5 15:40:45 6C
现在我们需要对每天,每周,每月各个产品的销量进行统计,

1)按天统计:

select DATE_FORMAT(start_time,‘%Y%m%d‘) days,count(product_no) count from test group by days;

2)按周统计:

select DATE_FORMAT(start_time,‘%Y%u‘) weeks,count(product_no) count from test group by weeks;

3)按月统计:

select DATE_FORMAT(start_time,‘%Y%m‘) months,count(product_no) count from test group bymonths;

官网 DATE_FROMAT 函数

官网日期时间函数

原文地址:https://www.cnblogs.com/ryanzheng/p/11322880.html

时间: 2024-10-08 06:02:44

Mysql按日、周、月进行分组统计的相关文章

Flex自定义组件开发之日周月日期选择日历控件

原文:Flex自定义组件开发之日周月日期选择日历控件 使用过DateField的我们都知道,DateField 控件是用于显示日期的文本字段,字段右侧带有日历图标.当用户在控件边框内的任一位置单击时,将弹出一个 DateChooser 控件,显示当月的所有日期.如果未选择日期,则该文本字段为空白,并且 DateChooser 控件中将显示当前日期的月份.当 DateChooser 控件处于打开状态时,用户可以在各个月份和年份之间滚动,并选择某个日期.选择日期后,DateChooser 控件关闭,

获得自然日周月时间

1.以下函数都可以直接使用. function getReportDates($periods){ $dates = array(); //当前时间周期的起止时间 $end = getWeekendByDate($periods); $start = date("Y-m-d",strtotime("-".($periods-1). "day",strtotime($end))); //获取日期($times个周期) $dates['start']

SQL周、日、月、年数据统计

本文只是记录在项目中用到的统计的SQL语句,记一笔以防忘了 /// <summary> /// 获取统计数据 /// </summary> /// <param name="CKEY">店面ckey</param> /// <param name="type">统计类型(日.周.月.年)</param> /// <returns></returns> [WebMethod

mysql 查询,天,周,月等写法

1.查询当天的数据 select * from 表名 where TO_DAYS(时间字段)=TO_DAYS(NOW()); 2.查询当周的数据 select * from 表名 where YEARWEEK(DATE_FORMAT(时间字段,'%Y-%m-%d'))=YEARWEEK(NOW()); 3.查询当月的数据 select * from 表名 where DATE_FORMAT(时间字段,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m'); 4.查询昨天的数据

按天周月统计数据

 MySql按周,按月,按日分组统计数据 2011-09-07 10:46:00 标签:MySql 数据库 按周月日分组 统计数据 休闲 知识关键词:DATE_FORMAT select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count fro

MySql按周/月/日分组统计数据的方法

知识关键词:DATE_FORMAT select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days; select DATE_FORMAT(create_time,'%Y%m') month

MySql 按周/月/日统计数据的方法

知识关键词:DATE_FORMAT select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days; select DATE_FORMAT(create_time,'%Y%m') month

sql语句分别按日,按周,按月,按季统计金额

如: 表:consume_record 字段:consume (money类型) date (datetime类型) 请问怎么写四条sql语句分别按日,按周,按月,按季统计消费总量. 如:1月 1200元 2月 3400元 3月 2800元 --按日 select sum(consume),day([date]) from consume_record where year([date]) = '2006' group by day([date]) --按周quarter select sum(

mysql按周/月/年统计数据

mysql 按周/月/年统计数据分别如下 select DATE_FORMAT(UPDATE_TIME,'%Y%u') weeks,count(UPDATE_TIME) count from table_name group by weeks; select DATE_FORMAT(UPDATE_TIME,'%Y%m%d') days,count(UPDATE_TIME) count from table_name group by days; select DATE_FORMAT(UPDATE