Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
如何在mysql中按月、日和小时对数据进行分组?_Mysql - Fatal编程技术网

如何在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

我有一个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(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错误。。。