[英]PHP mysql select with group by date range
I have table in MySQL: 我在MySQL中有表:
Question: How to group each row by 1 hour interval from range? 问题:如何按照距离范围1小时的间隔对每一行进行分组?
Wanted output: 想要的输出:
range1 = 2014-01-28 00:00:00 to 2014-01-28 01:00:00
range2 = 2014-01-28 01:00:00 to 2014-01-28 02:00:00
range3 = 2014-01-28 02:00:00 to 2014-01-28 03:00:00
...
Array
(
[range1] => Array
(
[id] => 1
[time] => 2014-01-28 00:00:00
)
[range2] => Array
(
[id] => 2
[time] => 2014-01-28 01:05:00
)
[range3] => Array
(
[id] => 3
[time] => 2014-01-28 02:00:00
)
)
My try: 我的尝试:
PHP: PHP:
function get_data() {
$start = date("Y-m-d 00:00:00");
$end = date("Y-m-d H:i:s", strtotime('+1 DAY', strtotime($start)));
$q = "
SELECT *
FROM table
WHERE (time BETWEEN '" . $start . "' AND '" . $end . "')
";
$select = mysqli_query($this->c, $q);
while ($row = mysqli_fetch_assoc($select)) {
$data[] = $row;
}
return $data;
}
Current output: 电流输出:
Array
(
[0] => Array
(
[id] => 1
[time] => 2014-01-28 00:00:00
)
[1] => Array
(
[id] => 2
[time] => 2014-01-28 01:05:00
)
[2] => Array
(
[id] => 3
[time] => 2014-01-28 02:00:00
)
)
SELECT * FROM table WHERE time BETWEEN '$start' AND '$end' GROUP BY DATE(time),DATEPART(hh,time)
该查询将按当天的小时分组,其中两个值之间的时间
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.