2017-07-06 57 views
-1

我有一个字段created_at具有以下值的表时间:获取最小,最大和平均每次的created_at时间

2017-06-06 13:04:50 
2017-06-06 13:09:54 
2017-06-06 13:20:20 
2017-06-06 13:40:29 
2017-06-06 14:05:30 
2017-06-06 14:12:50 
2017-06-06 14:30:40 
2017-06-06 15:01:36 
2017-06-06 15:06:16 

我要的是创建一个新表并执行以下的事情: 我想获得每小时的最小值,最大值和平均值,并将其保存到另一个表中。

+4

在[所以]你应该尝试**自己写代码**。后** [做更多的研究](//meta.stackoverflow.com/questions/261592)**如果你有问题,你可以**发布你已经尝试**与清楚的解释是什么是'工作**并提供[** Minimal,Complete和Verifiable示例**](// stackoverflow.com/help/mcve)。我建议阅读[问]一个好问题和[完美问题](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。另外,一定要参加[游览]并阅读[this](// meta.stackoverflow.com/questions/347937/)**。 –

+0

将所有日期转换为UNIX_TIME()总结时间戳并将结果除以日期数量。然后将结果转换回可读格式。 – Bernhard

+0

问题是,我不知道从哪里开始 – Nubcake

回答

0

这是你的开始。
我使用Y-m-d H值创建新的日期值。
由于我在相同的小时内删除了所有时间的分钟和秒数都会重复。

我使用数组计数值对重复值进行计数。的上面的代码

https://3v4l.org/690ne

$arr = array("2017-06-06 13:04:50", 
"2017-06-06 13:09:54", 
"2017-06-06 13:20:20", 
"2017-06-06 13:40:29", 
"2017-06-06 14:05:30", 
"2017-06-06 14:12:50", 
"2017-06-06 14:30:40", 
"2017-06-06 15:01:36", 
"2017-06-06 15:06:16"); 

Foreach($arr as $val){ 
    $newarr[] = date("Y-m-d H", strtotime($val)); 
} 

Var_dump($newarr); 

Var_dump(array_count_values($newarr)); 

输出是:

阵列(9){
[0] =>
串(13) “2017年6月6日13”
[1] =>
string(13)“2017-06-06 13”
[2] =>
串(13) “2017年6月6日13”
[3] =>
串(13) “2017年6月6日13”
[4] =>
串(13)“2017- 06-06 14"
[5] =>
串(13) “2017年6月6日14”
[6] =>
串(13) “2017年6月6日14”
[ 7] =>
string(13)“2017-06-06 15”
[8] =>
string(13)“2017-06-06 15”
}
阵列(3){
[ “2017年6月6日13”] =>
INT(4)
[ “2017年6月6日14”] =>
INT(3)
[ “2017年6月6日15”] =>
INT(2)
}

编辑阅读大卫的回答似乎是什么 “每小时” 的意思不清楚。
David将其读取为一小时滚动时间。
我把它看作是13-14之间,14-15之间等等。

相关问题