PHP mysql选择,按日期范围分组

PHP mysql选择,按日期范围分组,php,mysql,sql,date-range,Php,Mysql,Sql,Date Range,我在MySQL中有一个表: 问题:如何从范围中按1小时间隔对每行进行分组 想要的输出: 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 (

我在MySQL中有一个表:

问题:如何从范围中按1小时间隔对每行进行分组

想要的输出:

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
        )

)
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;
}
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
        )

)
我的尝试:

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
        )

)
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;
}
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
        )

)
PHP:

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
        )

)
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;
}
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
        )

)
电流输出:

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
        )

)
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;
}
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
        )

)

此查询将按当天的小时分组,其中两个值之间的时间对我来说没有意义。你能以表格形式提供吗?