如何在mysql中按月,日和小时对数据进行分组?

时间:2012-02-04 15:24:55

标签: mysql

我有一个如下所示的mysql数据库:

id |  userid | timestamp | activity

时间戳是一种日期时间数据类型,我需要按月,日和小时分组数据。我正在使用mysql和php作为我的脚本。

我可以通过以下查询按月和日进行操作:

$query = "SELECT COUNT(id) as totals FROM security_transactions WHERE YEAR(timestamp) = 2012 GROUP BY MONTH(timestamp), DAY(timestamp)";

我需要按月和按小时这样做。

请帮忙。

感谢。

2 个答案:

答案 0 :(得分:1)

如果您的专栏具有DATETIME格式,则可以通过查询将, HOUR(TIME(timestamp))添加到您的论坛

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_hour

另外,根据下面评论中的错误消息,看起来@Aprentice没有使用mysql,但我已经为其他寻找mysql的人改进了这个答案。

我从未使用过mssql,所以我无法对此进行测试,但以下内容可能会按最近的小时进行分组:

GROUP BY dateadd(hour, datediff(hour, 0, timestamp, 0)

答案 1 :(得分:0)

进一步使用HOUR()。您首先需要提取时间戳的时间部分。但是猜猜看,还有一个功能;)