在PHP中添加时间并获得平均值

在PHP中添加时间并获得平均值,php,mysql,Php,Mysql,我的数据库中有这个表 +--------- --------- ------------+ | id | time | date | +--------- --------- ------------+ | 1 | 0:12 | 03/30/2014 | --------- --------- ------------ | 2 | 0:14 | 04/09/2014 | <-- date today --------- -

我的数据库中有这个表

+--------- --------- ------------+
|   id    |   time  |    date    |
+--------- --------- ------------+
|    1    |   0:12  | 03/30/2014 |
 --------- --------- ------------
|    2    |   0:14  | 04/09/2014 | <-- date today
 --------- --------- ------------
|    3    |   0:32  | 04/09/2014 | <-- date today
 --------- --------- ------------
|    4    |   0:24  | 04/09/2014 | <-- date today
 --------- --------- ------------
今天的总时间=1:10

Average = 1:10 / 3

MySQL解决方案

select 
    avg( str_to_date( time, '%i:%s' ) ) 'avg t in sec', 
    date(date) date
from entries 
group by 2;
mysql> select
    ->   sum( str_to_date( time, '%i:%s' ) ) t,
    ->   date
    -> from entries
    -> group by 2;
+------+---------------------+
| t    | date                |
+------+---------------------+
|   12 | 2014-03-30 00:00:00 |
|   70 | 2014-04-09 00:00:00 |
+------+---------------------+
2 rows in set (0.00 sec)

mysql> select
    ->     avg( str_to_date( time, '%i:%s' ) ) 'avg t in sec',
    ->     date(date) date
    -> from entries
    -> group by 2;
+--------------+------------+
| avg t in sec | date       |
+--------------+------------+
|      12.0000 | 2014-03-30 |
|      23.3333 | 2014-04-09 |
+--------------+------------+
2 rows in set (0.00 sec)
演示@

在我的控制台上观察到的结果

select 
    avg( str_to_date( time, '%i:%s' ) ) 'avg t in sec', 
    date(date) date
from entries 
group by 2;
mysql> select
    ->   sum( str_to_date( time, '%i:%s' ) ) t,
    ->   date
    -> from entries
    -> group by 2;
+------+---------------------+
| t    | date                |
+------+---------------------+
|   12 | 2014-03-30 00:00:00 |
|   70 | 2014-04-09 00:00:00 |
+------+---------------------+
2 rows in set (0.00 sec)

mysql> select
    ->     avg( str_to_date( time, '%i:%s' ) ) 'avg t in sec',
    ->     date(date) date
    -> from entries
    -> group by 2;
+--------------+------------+
| avg t in sec | date       |
+--------------+------------+
|      12.0000 | 2014-03-30 |
|      23.3333 | 2014-04-09 |
+--------------+------------+
2 rows in set (0.00 sec)

你能从数据库中获取时间吗?@poomrokcthe3年我可以通过使用mysql_fetch_array获取时间你说的“平均秒数”是什么意思?@PorkChop尝试将所有这些复制到mysql查询中,这可能是我没有的特殊sql命令know@PorkChop:检查我的更新答案。当您将时间相加时,总计为
1:10
表示
1分10秒
,等于
70秒
。当你平均它时,它返回
@Ravinder OK。我现在明白了,但是如何通过php代码运行此查询呢?:)@PorkChop:将我的示例中显示的
avg
查询与PHP一起使用并执行。如果需要,您还可以将别名
'avg t in sec'
更改为
'avg_time'