我正在运行以下查询并获得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 )
您能告诉我可能需要进行哪些修改以实现上述输出吗?
答案 0 :(得分:1)
您需要在select
和group 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')