我有一个包含3列的表:id start_service stop_service
我已经使用下面的查询捕捉到了start_service和stop_service之间的时间差:
$query = "SELECT
TIMEDIFF (stop_service, start_service) AS tempo
FROM
user_establishment ORDER BY id";现在我需要将这个查询的所有结果相加,并除以记录的数量,从而获得所有服务的平均时间。
主要的问题是小时数的转换。
有人能帮帮我吗?
发布于 2020-01-19 00:45:10
下面的查询将用于获取时间差的平均值。在mysql查询中使用AVG()函数时,无需添加ORDER BY子句。它节省了执行的时间。
$query = "SELECT AVG(TIMEDIFF(stop_service, start_service)) AS tempo FROM user_establishment";发布于 2020-01-19 01:54:40
如果您需要在数小时内获得结果,请尝试此方法。如果你需要在几秒钟内完成除法,你可以省略掉除法3600 (这就是我会做的,然后在我的代码中操作它)。
SELECT
AVG(TIME_TO_SEC(TIMEDIFF(stop_service, start_service)))/3600 AS tempo
FROM
user_establishment;希望这能有所帮助!
发布于 2020-01-19 03:04:18
如果您希望以小时为单位的平均时间差不超过两个小数点,则可以尝试以下查询。
select ROUND(AVG(TIME_TO_SEC(tempo)/3600), 2) as avg_time
from (
select TIMEDIFF(stop_service, start_service) as tempo
from user_establishment
) as timeline您可以根据需要修改平均时间差。
https://stackoverflow.com/questions/59802451
复制相似问题