Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在MySQL中选择按小时分组的日期/时间分组_Php_Sql_Mysql_Datetime - Fatal编程技术网

Php 在MySQL中选择按小时分组的日期/时间分组

Php 在MySQL中选择按小时分组的日期/时间分组,php,sql,mysql,datetime,Php,Sql,Mysql,Datetime,我在mysql表中有一组日期数据,如下所示: 2010-02-13 1:00:00, "soma data" 2010-02-13 1:25:00, "soma data" 2010-02-13 1:37:00, "soma data" 2010-02-13 2:12:00, "soma data" 我想选择一个显示按小时分组的数据的报告,例如: On Feb 13, during the hour from 1:00 pm to 1:59 pm, there were 3 data poin

我在mysql表中有一组日期数据,如下所示:

2010-02-13 1:00:00, "soma data"
2010-02-13 1:25:00, "soma data"
2010-02-13 1:37:00, "soma data"
2010-02-13 2:12:00, "soma data"
我想选择一个显示按小时分组的数据的报告,例如:

On Feb 13, during the hour from 1:00 pm to 1:59 pm, there were 3 data points.
On Feb 13, during the hour from 2:00 pm to 2:59 pm, there was 1 data points.
...
基本上,我想报告一天中每小时发生的记录的累积量。所以最终结果会给我一个10天的报告,以24小时为单位,这样我就可以看到在任何一天的任何一个小时内有多少数据


蒂亚,希望你能帮忙

您可能希望在以下查询中使用
GROUP BY
子句:

SELECT 
    COUNT(*),
    YEAR(dateTimeField),
    MONTH(dateTimeField),
    DAY(dateTimeField),
    HOUR(dateTimeField)
FROM 
    yourTable
WHERE
    dateTimeField >= '2010-02-04 00:00:00' AND
    dateTimeField < '2010-02-14 00:00:00'
GROUP BY 
    YEAR(dateTimeField), 
    MONTH(dateTimeField),
    DAY(dateTimeField),
    HOUR(dateTimeField);
选择
计数(*),
年份(dateTimeField),
月(dateTimeField),
日期(dateTimeField),
小时(dateTimeField)
从…起
你的桌子
哪里
dateTimeField>=“2010-02-04 00:00:00”和
dateTimeField<'2010-02-14 00:00:00'
分组
年份(dateTimeField),
月(dateTimeField),
日期(dateTimeField),
小时(dateTimeField);
您可能还想查看MySQL文档,以进一步了解日期和时间函数:


您将获得两个字段:小时和该小时内的事件数。

此查询的问题是,您不能跨越10天的报告。抱歉,这不起作用-仅显示一天的小时数,不能跨越时间。
SELECT HOUR(datetime), COUNT(*)
FROM table
GROUP BY HOUR(datetime);