在MySQL中,获取时间的平均值非常简单,只需要使用AVG函数即可。AVG函数可以用于任何数字类型的列,例如TIMESTAMP、TIME、DATE、DATETIME等。
SELECT AVG(TIME_TO_SEC(`duration`)) AS `avg_duration` FROM `table` WHERE `some_condition`;
在上面的代码中,我们通过TIME_TO_SEC函数将时间转换为秒钟,然后使用AVG函数计算平均值。可以通过添加其他条件来过滤数据,如WHERE语句中的一些条件。
如果需要将平均值转换回时间,则可以使用SEC_TO_TIME函数:
SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(`duration`))) AS `avg_duration` FROM `table` WHERE `some_condition`;
在上面的代码中,我们将AVG函数先应用于TIME_TO_SEC函数,然后将结果传递给SEC_TO_TIME函数。
需要注意的一点是,如果列中有NULL值,则AVG函数将忽略它们。如果需要计算包括NULL值的平均值,则可以使用IFNULL函数将NULL值替换为0或其他数字。
SELECT AVG(IFNULL(TIME_TO_SEC(`duration`), 0)) AS `avg_duration` FROM `table` WHERE `some_condition`;