MySQL或PHP日期平均值
我正试图找出如何找到许多不同时间值的平均值,这些时间值是两个日期的时间差,因此它们的格式为MySQL或PHP日期平均值,php,mysql,time,average,Php,Mysql,Time,Average,我正试图找出如何找到许多不同时间值的平均值,这些时间值是两个日期的时间差,因此它们的格式为hh:mm:ss 如果我有4个时间值: 00:11:05 00:01:30 00:04:25 00:09:50 我很难弄明白这一点。 我认为这些时间值需要转换成某种类型的整数值,然后除以,再转换回这种时间格式 感谢您的帮助 谢谢这些数据类型是什么?hh:mm:ss恐怕只能表示时间,不能表示日期。您可以将它们转换为秒,然后平均。i、 例如,1小时=60分钟=3600秒。等然后,如果需要,请转换回我正在尝试查找
hh:mm:ss
如果我有4个时间值: 00:11:05
00:01:30
00:04:25
00:09:50 我很难弄明白这一点。
我认为这些时间值需要转换成某种类型的整数值,然后除以,再转换回这种时间格式 感谢您的帮助
谢谢这些数据类型是什么?hh:mm:ss恐怕只能表示时间,不能表示日期。您可以将它们转换为秒,然后平均。i、 例如,1小时=60分钟=3600秒。等然后,如果需要,请转换回我正在尝试查找时间值的平均值。数据类型是执行DATEDIFF返回的任何数据。所以上面的每一个时间值都是在两个不同的日期执行DATEDIFF的结果。对不起…我指的是TIMEDIFF而不是DATEDIFF@Martin:如果你的意思是只在时间域上运行
AVG
:我原以为它会起作用,但实际上它将它非常愚蠢地转换为整数,而平均值不起作用。例如:cast(平均值('01:30','2:30')作为时间))
结果为空(01:80无效),cast(平均值('01:10','2:00')作为时间)
结果为01:55,当它应该是01:35时,请参见模式?它的总和为110+200=310,310/2=155,转换为时间=01:55。不是我们想要的:(
SELECT DATE_FORMAT(
FROM_UNIXTIME(
AVG(
UNIX_TIMESTAMP(CONCAT('1980-01-01 ',timefield))
)
),
'%H:%i:%s.%f') FROM times;