2013-01-24 119 views
0

我试图计算表中列(hit_date)中TIMESTAMP(YY-MM-DD HH:MM:SS)记录之间的平均时间间隔。AVG日期时间间隔,显示天数和时间

我这样做在MySQL的:

SELECT DATEDIFF(MAX(hit_date), MIN(hit_date))/(COUNT(hit_date) - 1) AS hitavg FROM my_table 

这会返回一个值,即135.50。

然后,我这样做是在PHP中显示的结果:

$value = ($res_from_mysql_query); 

$days = (int) $value; 
$hours = 24 * ($value - $days); 

echo "$days Days, $hours Hours"; 

,我的结果是:

135天0小时。

但这不是正确的结果......有什么不对? 我有在MySql中使用TIMEDIFF吗?如果是的话,我得到了一个完全不同的价值......所以,我怎样才能实现我的PHP脚本?

如何正确显示此间隔的天数和小时数?

请帮助我改进这一点,任何帮助将非常感激!

回答

1

怎么样这样的代码:

SELECT TIMESTAMPDIFF(HOUR, MIN(hit_date), MAX(hit_date))/(COUNT(*)-1) AS hitavg FROM my_table 

TIMESTAMPDIFF(UNIT, DATETIMEEXP1, DATETIMEEXP2)返回DATETIMEEXP1和DATETIMEEXP2小时之间的差别。对于每一个“选择”查询发现第一个和最后一个命中(访问)和总的日访问的计数,然后求算术平均值。 然后在PHP是为了显示区别简单的方法...

也许你应该看看这些MySQL的裁判:

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timediff