Php 计算平均交货时间laravel

Php 计算平均交货时间laravel,php,laravel,Php,Laravel,我有一个电子商务应用程序。所有交付的订单都有一列“更新位置”。我可以用这个列计算平均交货时间总交货订单吗 我已经清点了所有订单和更新的列。 我需要做的是计算平均时间 我的代码: $deliveryTime = Order::where('status', '8')->count(); //get A count delivered orders.. 你可以这样做。它将返回状态为8的订单的平均值 $deliveryTime = Order::where('state', '=', '8')

我有一个电子商务应用程序。所有交付的订单都有一列“更新位置”。我可以用这个列计算平均交货时间总交货订单吗

我已经清点了所有订单和更新的列。 我需要做的是计算平均时间

我的代码:

$deliveryTime = Order::where('status', '8')->count(); //get A count delivered orders..

你可以这样做。它将返回状态为8的订单的平均值

$deliveryTime = Order::where('state', '=', '8')->select(DB::raw('AVG(created_at) as order_average'))->get();

根据OP的问题和评论:

平均交货时间=平均(订单创建日期和订单交货日期的日期差)

订单创建日期字段=
created_at
order delivery date字段=
更新时间


如果需要对值进行舍入,可以使用
round($averageTime)

正如我所想,它需要更复杂的SQL查询,并且需要使用在字段中创建的
来获取每个订单的交货时间,然后计算平均值;(
SELECT AVG(TIMESTAMPDIFF(MINUTE,created_at,closed)))作为一个FROM orders,status=8
@Jadasdas订单创建日期存储在哪里?@ab_在
created_at
列中,但是我如何获得平均交付时间呢?我需要获得,例如:平均交付时间:15天在数据库上的延迟,但请查看
DATEDIFF(date1,date2)
sql函数与
AVG(列)
配对。我得到:66.285714285714.66天-这是平均交货时间?:)在db I have dates中,如何验证?通过附加的测试约束来减小大小。如果要手动验证,请计算日期差并找到平均值,然后使用代码结果进行验证。我的代码在我的条件下进行了测试,测试成功。[假设您在
处创建的
和在
处更新的
都有
时间戳
数据类型。让我们来看看。
$averageTime = Order::select(\DB::raw("DATEDIFF(updated_at, created_at)AS day_diff"))->where('status', '8')->get()->avg('day_diff');