每小时MYSQL查询

时间:2013-04-30 03:59:37

标签: 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'));

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

谢谢!

修改

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

1 个答案:

答案 0 :(得分:5)

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

select Hour(timestamp) transhour, count(*) transcount
from transactions
where yourfilters = yourvalues
Group by Hour(timestamp)

输出将如下所示:

transhour | transcount
======================
0         | 2
1         | 23
2         | 45
3         | 23
...       | ...
22        | 34
23        | 3

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