【问题标题】:AVG datetime interval, show Days and HoursAVG 日期时间间隔,显示天数和小时数
【发布时间】:2013-01-08 07:49:36
【问题描述】:

我正在尝试计算表中列 (hit_date) 中 TIMESTAMP (YY-MM-DD HH:MM:SS) 记录之间的平均间隔。

我在 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 脚本?

如何正确显示此时间间隔的日期和时间?

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

【问题讨论】:

    标签: php mysql timestamp average


    【解决方案1】:

    那段代码怎么样:

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

    TIMESTAMPDIFF(UNIT, DATETIMEEXP1, DATETIMEEXP2) 返回 DATETIMEEXP1 和 DATETIMEEXP2 之间的 HOURS 差。对于每个“选择”,查询查找第一次和最后一次点击(访问)的日期和总访问次数,然后计算算术平均值。 那么在 PHP 中是显示差异的简单方法...

    也许你应该看看这些 MySQL 参考:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 2015-11-27
      相关资源
      最近更新 更多