MYSQL 查询 按月统计数据

在我们日常做mysql的查询的时候,统计每月的数据是必不可少的。但是数据库里存储的时间格式,有可能是Y-m-d H:i:s,也有可能是时间戳。我们就需要date_format()、str_to_date()。这两个函数是日期与字符相互转换的方法,具体是用方法如下:
date_format(date,'%Y-%m-%d') ;
  str_to_date(date,'%Y-%m-%d') ;
  %Y:代表4位的年份
  %y:代表2为的年份
  %m:代表月, 格式为(01……12)
  %c:代表月, 格式为(1……12)
  %d:代表月份中的天数,格式为(00……31)
  %e:代表月份中的天数, 格式为(0……31)
  %H:代表小时,格式为(00……23)
  %k:代表 小时,格式为(0……23)
  %h: 代表小时,格式为(01……12)
  %I: 代表小时,格式为(01……12)
  %l :代表小时,格式为(1……12)
  %i: 代表分钟, 格式为(00……59)
  %r:代表 时间,格式为12 小时(hh:mm:ss [AP]M)
  %T:代表 时间,格式为24 小时(hh:mm:ss)
  %S:代表 秒,格式为(00……59)
  %s:代表 秒,格式为(00……59)


图片.png

我用的是ThinkPHP5.0 ,代码如下

          $yearstart = date('Y', time()).'-01-01 00:00:00';
          $yearend = date('Y', time()).'-12-31 23:59:59';

    $sum = Db::name('village_order')
      ->field("date_format(pay_date,'%Y-%m') as pay_time ,SUM(sum_price) as sum_prices")
      ->where($map)
      ->whereBetweenTime('pay_date', $yearstart, $yearend)
      ->group('pay_time')
      ->select();

希望对大家有所帮助,我就是一个PHP菜鸟。:)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容