有一张表,字段有id,openid,eventTime;eventTime是存储时间的 格式为datetime,我要查询 2019-06-03 11:00:00 到 2019-06-08 13:00:00的数据  按每天展示 比如 2019--06-03 有100条数据 2019-06-04 有150条数据 这么展示......,请问大佬们应该怎么做 

解决方案 »

  1.   

    select DATE_FORMAT(eventTime,'%Y%m%d') days,count(id) count from t_xxx group by days; 
      

  2.   

    做统计之类的功能,建议加几个char类型的日期字段/每年第几周/每年第几个月,这样要根据周,年,日做统计都非常方便,而且也不会用到DATE_FORMAT之类的日期函数,导致不走索引
      

  3.   

    SELECT DATE_FORMAT(eventTime,'%Y-%m-%d') AS data_date,COUNT(id) AS num FROM `table_txt`
    WHERE  eventTime >= '2019-06-03 11:00:00' AND eventTime <= '2019-06-08 13:00:00' GROUP BY data_date; `table_txt`  :  表名,换成你自己的表即可;
      

  4.   

    楼主你好,二楼的方法可以,不过 group by比较耗费性能,尤其当表记录比较多的时候,
    建议可以单独维护一张表,存储每天的记录总值,这样查询比较快
      

  5.   

    1、where取出范围;
    2、把时间转为天;
    3、分组统计天