如何在mysql中按月、日和小时对数据进行分组?
我有一个mysql数据库,如下所示:如何在mysql中按月、日和小时对数据进行分组?,mysql,Mysql,我有一个mysql数据库,如下所示: id | userid | timestamp | activity Timestamp是一种datetime数据类型,我需要按月、日和小时对数据进行分组。我在脚本中使用mysql和php 通过以下查询,我可以逐月逐日完成: $query = "SELECT COUNT(id) as totals FROM security_transactions WHERE YEAR(timestamp) = 2012 GROUP BY MONTH(timestam
id | userid | timestamp | activity
Timestamp是一种datetime数据类型,我需要按月、日和小时对数据进行分组。我在脚本中使用mysql和php
通过以下查询,我可以逐月逐日完成:
$query = "SELECT COUNT(id) as totals FROM security_transactions WHERE YEAR(timestamp) = 2012 GROUP BY MONTH(timestamp), DAY(timestamp)";
我需要按月、按日、按小时做这件事
请帮忙
谢谢。您可以通过查询将,HOUR(TIME(timestamp))
添加到您的组中,前提是您的列为DATETIME格式
另外,从下面评论中的错误消息来看,@Aprentice似乎没有使用mysql,但我已经为其他寻找mysql的人改进了这个答案
我从未使用过mssql,因此我无法对此进行测试,但以下内容可能在最近的一小时内对分组有效:
GROUP BY dateadd(hour, datediff(hour, 0, timestamp, 0)
只要再往前走一步,也可以使用它。您首先需要提取时间戳的时间部分。但是你猜怎么着,这也有一个函数;) 我不知道这是如何在工作中设置的,但当我使用HOUR()函数时,会出现一个错误,就像该函数不存在一样。这是我在使用HOUR()函数时遇到的错误:警告:odbc_exec()[function.odbc exec]:SQL错误:[Microsoft][odbc SQL Server驱动程序][SQL Server]“hour”不是可识别的函数名,SQL state 37000位于第8行的D:\SecurityServices\temp\moises\Vail\u Stats\index.php中的SQLExecDirect中。是否确定使用的是MySQL而不是Microsoft SQL Server?如何提取时间部分警告:odbc\u exec()[function.odbc exec]:SQL错误:[Microsoft][odbc SQL Server驱动程序][SQL Server]“hour”不是可识别的函数名,第8行的D:\SecurityServices\temp\moises\Vail\u Stats\index.php中SQLExecDirect中的SQL状态37000根据您的问题,您正在使用MySQL。这是一个MS SQL Server错误。。。