2017-07-06 140 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之間等等。

相關問題