日期范围按日期和按小时分组

时间:2010-11-17 12:53:23

标签: php mysql

我有一个每天一小时都有数据输入的msql表,因此每个日期输入24次,然后输入一小时字段,如下所示...

如何获取日期范围之间的信息?

这就是我所拥有的,但我认为现在是时候停止工作......

$sql = "SELECT * FROM report WHERE date BETWEEN '$start' AND '$end'";

熙是我希望在日期之前得到信息的表......

单位ID |日期|时间|电源|伏特|当前|

1         10/15/2010    21:00:00         0            220          100
1         10/15/2010    22:00:00         0            220          100
1         10/15/2010    23:00:00         0            220          100
1         10/16/2010    00:00:00         0            220          100
1         10/16/2010    01:00:00         0            220          100
1         10/16/2010    02:00:00         0            220          100
1         10/16/2010    03:00:00         0            220          100
1         10/16/2010    04:00:00         0            220          100
1         10/16/2010    05:00:00       245            220          100
1         10/16/2010    06:00:00       360            220          100
1         10/16/2010    07:00:00       596            220          100
1         10/16/2010    08:00:00      1567            220          100
1         10/16/2010    09:00:00      1568            220          100
1         10/16/2010    10:00:00      1598            220          100
1         10/16/2010    11:00:00      1642            220          100
1         10/16/2010    12:00:00      1658            220          100
1         10/16/2010    13:00:00      1664            220          100
1         10/16/2010    14:00:00      1598            220          100
1         10/16/2010    15:00:00      1527            220          100
1         10/16/2010    16:00:00       980            220          100
1         10/16/2010    17:00:00       410            220          100
1         10/16/2010    18:00:00       208            220          100
1         10/16/2010    19:00:00         0            220          100
1         10/16/2010    20:00:00         0            220          100
1         10/16/2010    21:00:00         0            220          100
1         10/16/2010    22:00:00         0            220          100
1         10/16/2010    23:00:00         0            220          100
1         10/17/2010    00:00:00         0            220          100
1         10/17/2010    01:00:00         0            220          100
1         10/17/2010    02:00:00         0            220          100

日期为DATE,时间字段为TIME,电源,电压和电流均为FLOAT

$start$end是日期选择器的日期

    $start = (isset($_POST['start1'])) ? date("Y-m-d",strtotime($_POST['start1'])) : date("Y-m-d");

$end   = (isset($_POST['end1'])) ? date("Y-m-d",strtotime($_POST['end1'])) : date("Y-m-d");

2 个答案:

答案 0 :(得分:0)

不,如果你想要所有所有日期的点数,你可以忽略你的时间列,你的查询就可以了。

答案 1 :(得分:0)

您需要从变量$ start和$ end。

中删除单引号

通过使用单引号,您将变量设为字符串。

只需使用

$ sql =“SELECT * FROM report WHERE date BETWEEN $ start AND $ end”;

在你的mysql表中,日期的格式为m-D-Y,而在你的php代码中,它的Y-m-d。你的PHP代码中的日期格式应该类似于你的mysql日期格式。