热门标签: 转载 JavaScript mysql 学习 php
主页> 数据库 >

mysql查询每日数据的汇总

发布时间:2018-01-10 编辑:三石兄 标签: mysql 热度:1806

mysql通过time字段查询指定月份内每一天的数据量

使用场景:mysql的表里有一堆的数据,每条数据都有一个时间的字段,每天都有很多数据,我需要一次性查询出这个月内每天都有多少数据量;

mysql代码:

SELECT count( * ) , DATE_FORMAT( a.time, '%Y-%m-%d' ) AS times
FROM `tp_guests` a
WHERE DATE_FORMAT( a.time, '%m' ) = '08'
GROUP BY times
ORDER BY times DESC
LIMIT 0 , 30

以查询2017年8月份的数据为例,这里主要用到了一个sql函数,DATE_FORMAT(),这个函数的作用主要是用于以不同的格式显示日期/时间数据,在上面代码中

%Y 的作用是根据时间字段获取 年,四位数
%m 的作用是根据时间字段获取 月,数值(00-12)
%d 的作用是根据时间字段获取 月的天,数值(00-31)

用count(*)获取数据量【用count(*)比用count('字段名')效率更高】,在where中筛选这个月的数据,然后用group by过滤重复时间,order by 对时间进行降序排序,查出来的数据就是这个月里所有天数的数据量(前提是当天有数据),查询结果如下:

图片.png


在TP5框架下的查询方法:

Db::name('Table')
    ->field(['count(*)'=>'sum',"DATE_FORMAT(time,'%Y-%m-%d')"=>'times'])
     ->where("DATE_FORMAT(time, '%m' ) = '11'")
      ->group('times')
       ->order('times')
        ->select();


Copyright © 2017-2020 三石兄博客 & 版权所有

蜀ICP备17023832号

195721