自定义MySQL输出

时间:2013-07-15 23:38:12

标签: mysql sql mysql-5.5

我正在运行以下查询并获得SQL Query下面提到的输出,并解释如下:

时间戳:包含所有日期和时间相关值的列的名称。 MyDatabase:数据库的名称 事件:名称为“Events”的另一列的名称,其中包含各种值,如FIRST,SECOND,THIRD等。我在这里提到了FIRST 方便和清晰。

SELECT count(Timestamp) as COUNT,Timestamp 
FROM MyDatabase
WHERE EVENTS = "FIRST" GROUP BY Timestamp ;

例如,我得到的输出如下:

     COUNT       TIMESTAMP
___________________________
1      1          2013-06-06 11:51:37.0

2      2          2013-06-06 11:51:39.0

3      2          2013-06-06 11:51:37.0

依旧......

在发布日期“2013-06-06”的长列表后,日期变为“2013-06-07”

上面的输出是特定于时间的,但我希望它是特定于日期的,并记下我的SQL查询,以便我的所需输出应该 如下:

     COUNT       TIMESTAMP
___________________________
1      6          2013-06-06  ( Sum of all the "COUNT" values corresponding to the   date 2013-06-06)

2      8          2013-06-10  ( Sum of all the "COUNT" values corresponding to the date 2013-06-10 )

您能告诉我可能需要进行哪些修改以实现上述输出吗?

1 个答案:

答案 0 :(得分:1)

您需要在selectgroup by子句中将时间戳转换为日期。在MySQL中,最简单的方法是使用date()函数:

SELECT count(Timestamp) as COUNT, date(Timestamp)
FROM MyDatabase
WHERE EVENTS = 'FIRST'
GROUP BY date(Timestamp)

如果你非常想要这种日期格式,你也可以使用date_format()

SELECT count(Timestamp) as COUNT, date_format(Timestamp, '%Y-%m-%d')
FROM MyDatabase
WHERE EVENTS = 'FIRST'
GROUP BY date_format(Timestamp, '%Y-%m-%d')