我有一个电子商务应用程序。所有交付的订单都有一列" updated_at"。我可以用这个列计算平均交货时间总交货订单吗?
我已计算所有订单和列updated_at。 我需要做什么,计算平均时间?
我的代码:
$deliveryTime = Order::where('status', '8')->count(); //get A count delivered orders..
答案 0 :(得分:1)
你可以这样做。它将返回状态为8的订单的平均值
$deliveryTime = Order::where('state', '=', '8')->select(DB::raw('AVG(created_at) as order_average'))->get();
答案 1 :(得分:0)
来自OP的问题和评论:
平均投放时间=平均值(订单创建日期与order_delivery_date的日期差异)
订单创建日期字段=
created_at
订单交付日期字段=updated_at
$averageTime = Order::select(\DB::raw("DATEDIFF(updated_at, created_at)AS day_diff"))->where('status', '8')->get()->avg('day_diff');
如果需要对值进行舍入,则可以使用round($averageTime);