laravel数据表配置(laravel实现按月或天或小时统计mysql数据的方法)
类别:编程学习 浏览量:1214
时间:2021-10-16 00:22:49 laravel数据表配置
laravel实现按月或天或小时统计mysql数据的方法在PHP里怎么比较简单的实现按时间(如按月,按天,按小时)来统计表里的数据呢?
如:要实现获取下图曲线图数据(ps:当然也可能是柱状图等,数据都是一样的),默认获取七天内的数据,点击今天,7天,15天,30天可任意切换,其中今天是按小时统计.
不过我的实现方法有一个小缺点,当某个小时内是没有数据的,那么该小时不会出现,不过这个应该可以通过前端的形式弥补
好了,废话不多说,上图上代码!
1. 控制器内容
|
/** * [getsellerdata 获取某时间段内商户结算查询数据] * @param Request $request [description] start:起始时间 end:结束时间 * @return [type] [description] */ public function getsellerqudata(Request $request ){ $data = $this ->dataanalysis->getSellerQuData( $request ->start, $request -> end ); return $data ; } |
2. 库文件内容
|
/** * [getSellerQuData 获取商户结算数据 曲线] * @param [string] $start [起始时间]2017-08 * @param [string] $end [结束时间] * @return [type] [description] */ public function getSellerQuData( $name , $start , $end ){ //计算时间差值,以决定格式化时间格式 $diff = strtotime ( $end )- strtotime ( $start ); //分组条件 1天内按小时分组,否则按天/月分组 //86400/1天 2678400/1月 if ( $diff <86400&& $diff >0){ $sort = '%H' ; } elseif ( $diff <2678400){ $sort = '%Y-%m-%d' ; } else { $sort = '%Y-%m' ; } //把数据添加时间按格式化时间分组求和,求和分两种,一种是直接求和,一种是满足case when条件的数据求和 $query = DB::table( 'user_withdrawals as w' )->select(DB::raw( "FROM_UNIXTIME(created_at,'{$sort}') as thedata,sum(case when w.cash_type = 1 then w.money end) as xiabi,sum(case when w.cash_type = 2 then w.money end) as online,sum(w.money) as alls" ))->groupBy(DB::raw( "FROM_UNIXTIME(created_at,'{$sort}')" )); //条件筛选 某时间段内 if ( ! empty ( $start ) ){ $query ->whereRaw( 'w.created_at >= ?' , strtotime ( $start )); } if ( ! empty ( $end ) ){ $query ->whereRaw( 'w.created_at <= ?' , strtotime ( $end )); } $data = $query ->get(); return $data ; } |
以上这篇laravel实现按月或天或小时统计mysql数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/php_girl/article/details/76681366
您可能感兴趣
- mysql数据库导入错误怎么处理(MySQL数据库导入导出数据之报错解答实例讲解)
- mysql各种类型设置(MySQL sql_mode的使用详解)
- 对mysql性能优化的看法(聊聊MySQL的COUNT的性能,看看怎么最快?)
- mysql 临时表
- mysql查询逗号分割字符串(MySQL 字符串拆分实例无分隔符的字符串截取)
- mysql中查询数据合并(Mysql合并结果接横向拼接字段的实现步骤)
- mysql数据库的备份与恢复的方法(详解Mysql之mysqlbackup备份与恢复实践)
- mysql的复制原理(浅析MySQL的WriteSet并行复制)
- mysql长连接释放和不释放的问题(解决MySQL存储时间出现不一致的问题)
- idea安装mybatis(IDEA使用mybatis-generator及配上mysql8.0.3版本遇到的bug)
- mysql的默认数据库例子在哪里(修改MySQL8.0 默认的数据目录快捷操作无配置)
- mysql的索引及其介绍总结(浅析MysQL B-Tree 索引)
- mysql的uuid说明(MySQL GTID全面总结)
- mysql8.0中如何导入数据(mysql8.0.20数据目录迁移的方法)
- navicat连接mysql1045解决方法(Navicat 连接服务器端中的docker数据库的方法)
- mysql重新安装失败
- 臭名昭著的731部队最高负责人 石井四郎(臭名昭著的731部队最高负责人)
- 王牌部队,你看的剧情我看的时尚(你看的剧情我看的时尚)
- 被鉴定的古董价值300万 当心,你可能遇到诈骗了(被鉴定的古董价值300万)
- 英语难学吗(初中英语难学吗)
- 如何追女孩子(如何追女孩子的技巧和方法)
- 是不是快乐全被你拿走了(而是你得到的)
热门推荐
- zabbixagent安装教程(zabbix-agent在麒麟V10上的安装过程)
- mysql视图管理方法(MySQL 视图View原理解析)
- tomcat怎么知道访问servlet(详解从源码分析tomcat如何调用Servlet的初始化)
- SVN如何排除不想提交的文件
- flask快速开发框架(手把手教你使用Flask搭建ES搜索引擎预备篇)
- xm文档使用教程(xmapp环境搭建注意事项说明)
- with(nolock)的用法
- laravel关联查询限制数量(laravel-admin 后台表格筛选设置默认的查询日期方法)
- mysql对null值如何理解(MySQL为Null会导致5个问题个个致命)
- linuxdhcp服务器分配(Linux实现DHCP服务器的搭建)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9