在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'