每小时MYSQL查询

New*_*PHP 0 php mysql sql datetime aggregate-functions

$today = mktime(0,0,0);
$yesterday = $today - 86400;
$this->view->numberyesterday=$db->fetchAll("SELECT * FROM `transactions` WHERE `siteid`=".$sid." AND `timestamp` > ".$db->quote($yesterday,'integer')." AND timestamp < ".$db->quote($today,'integer'));
Run Code Online (Sandbox Code Playgroud)

我用上面的代码显示了昨天的所有记录.现在我需要绘制每小时的图表.如何从上述查询中每小时检索一次记录?(例如,记录在12-1 AM,1-2 AM .... 23-24PM等)

谢谢!

编辑:

我希望我可以在每个变量中存储每小时的记录.因此24小时内将有24个变量.因此绘制图表很容易.

Adr*_*iro 5

您没有指定输出的外观,但似乎这个结构可以帮助您:

select Hour(timestamp) transhour, count(*) transcount
from transactions
where yourfilters = yourvalues
Group by Hour(timestamp)
Run Code Online (Sandbox Code Playgroud)

输出将如下所示:

transhour | transcount
======================
0         | 2
1         | 23
2         | 45
3         | 23
...       | ...
22        | 34
23        | 3
Run Code Online (Sandbox Code Playgroud)

警告:如果在给定的小时内没有执行任何事务,则输出将忽略此小时(并且不会将其带回计数为零)