我有一个包含字段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
我想要的是创建一个新表并执行以下操作: 我希望每小时得到最小值,最大值和平均值,并将其保存到另一个表格中。
答案 0 :(得分:0)
这是一个开始。
我使用Y-m-d H
值创建新的日期值
由于我在同一小时内删除分钟和秒钟所有时间都是重复的。
我用数组计数值计算重复值。
$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] =>
string(13)“2017-06-06 13”
[1] =>
string(13)“2017-06-06 13”
[2] =>
string(13)“2017-06-06 13”
[3] =>
string(13)“2017-06-06 13”
[4] =>
string(13)“2017-06-06 14”
[5] =>
string(13)“2017-06-06 14”
[6] =>
string(13)“2017-06-06 14”
[7] =>
string(13)“2017-06-06 15”
[8] =>
string(13)“2017-06-06 15”
}
数组(3){
[“2017-06-06 13”] =>
INT(4)
[“2017-06-06 14”] =>
INT(3)
[“2017-06-06 15”] =>
INT(2)
}
编辑阅读David的回答似乎不清楚“每小时”是什么意思 大卫把它读成一小时的滚动时间 我把它读作13-14之间,14-15之间等等。
答案 1 :(得分:0)
IMO整数比datetime更容易操作。步骤1将值转换为时间戳。那么这是一个数学运算问题,如
获得三个值后,使用PDO http://php.net/manual/en/book.pdo.php将数据插入表格。
(注意:请勿使用mysql数据库扩展!)