MySQL组由DAY未显示当月的结果

时间:2014-08-07 07:29:50

标签: mysql group-by

正如查询所述,它从6月到8月检索记录,但为什么结果只显示到7月31日?我有2014-06-08到2014-08-07的记录。它是否有问题,因为截至今天的当月是八月?

SELECT COUNT(*) AS, DATE(created)
FROM battle
WHERE player_id = 1234 AND enemy_id = 4567
AND created BETWEEN '2014-06-01 00:00:00' AND '2014-08-31 23:59:59'
GROUP BY DAY(created)
ORDER BY created ASC;

3 个答案:

答案 0 :(得分:3)

您按DAY(created)进行分组,这只是该月的某一天。因此,它将6月1日,7月1日和8月1日合并为同一组,6月2日,7月2日和8月2日进入下一组,依此类推。

使用GROUP BY DATE(created)在分组中包含月份。

答案 1 :(得分:2)

按如下方式更改您的查询

使用GROUP BY DATE(created)代替GROUP BY DAY(created)

    SELECT COUNT(*) AS, DATE(created)
    FROM battle
    WHERE player_id = 1234 AND enemy_id = 4567
    AND created BETWEEN '2014-06-01 00:00:00' AND '2014-08-31 23:59:59'
    GROUP BY DATE(created)
    ORDER BY created ASC;

答案 2 :(得分:0)

试试这个:

SELECT COUNT(*) AS, DATE
FROM battle
WHERE player_id = 1234 AND enemy_id = 4567
AND Date BETWEEN '2014-06-01 00:00:00' AND '2014-08-31 23:59:59'
GROUP BY Date
ORDER BY Date ASC;