Tp5按照日期合计查询出数据
2023-03-07 09:50:08 时间
示例如下
代码如下
$deviceId=$this->request->param('deviceId');
$date=$this->request->param('date',30);//
$end_time=time();
$begain_time=$end_time-$date*3600*24;
$option=[];
if($deviceId){
$option['t.deviceId']=$deviceId;
}
if($date){
$option['workDatetime']=['between',[$begain_time,$end_time]];
}
$deviceId_arr=Db::name('user_device')->where('user_id',$this->auth->id)->column('deviceId');
$option['t.deviceId']=['in',$deviceId_arr];
$arr['sum_sy']=Db::name('device_lists')
->alias('t')
->join('device_pl p','t.deviceId=p.deviceId')
->where($option)
->sum('p.sy');
$arr['sy']=Db::name('device_lists')
->alias('t')
->join('device_pl p','t.deviceId=p.deviceId')
->where($option)
->sum('p.sy');
$arr['list']=Db::name('device_lists')//此处是核心,用到了group和对日期格式化的操作
->alias('t')
->join('device_pl p','t.deviceId=p.deviceId')
->where($option)
->field('sum(p.sy) as sy,FROM_UNIXTIME(workDatetime,"%m-%d") as workDatetime')
->group("DATE_FORMAT(FROM_UNIXTIME(workDatetime),'%Y-%m-%d')")
->select();
$this->success('成功',$arr);
本案例场景是查询指定日期范围内的设备的每日流量总和,得到绘制流量图的数据。
备注:如果MySQL大于5.7要小心不支持group,如果不支持则需要修改mysql.ini文件的配置
mysql.ini文件
在 [mysqld] 里加上
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
重启mysql即可
未经允许不得转载:肥猫博客 » Tp5按照日期合计查询出数据
相关文章
- 数据孤岛是业务效率的无声杀手
- 2023展望:新的一年将给大数据分析领域带来什么?
- 阿里云ADB基于Hudi构建Lakehouse的实践
- 大数据在医疗保健领域的使用案例
- 微软增加说明:KB5021751 更新扫描已经 / 即将过时 Office 过程中不会触碰用户隐私
- 2022 Gartner全球云数据库管理系统魔力象限发布 腾讯云数据库入选
- 场景化、重实操,分享一个实时数仓实践案例
- Arctic的湖仓一体践行之路
- 分布式计算MapReduce究竟是怎么一回事?
- 淘系数据模型治理优秀实践
- 大数据分析对医疗保健的影响
- 当我们说大数据Hadoop,究竟在说什么?
- 2022年及以后大数据的五个发展趋势
- 网易严选离线数仓治理实践
- 2023 年数据治理趋势
- 一份“靠谱”的年度经营计划,你学会了吗?
- 漫谈对大数据的思考
- 测试一下,读懂数据的能力,你有吗?
- 用艺术的眼光探索数据之美
- 聊聊数据分析成果如何落地