我有一个表监视器
,其字段之一是Date
类型的日期。示例记录就像
id | date | other fields.
1 2019-03-01 20:00:00
2 2019-03-01 20:30:00
3 2019-03-02 20:00:00
4 2019-03-01 10:00:00
现在,我想统计过去五天的记录数,并返回一个 map ,例如:
day| count
2019-03-01 3
2019-03-02 1
我的sql是这样的:
select day(date),count(*) from monitor group by day(date);
那么我应该如何在mysql中构建呢?谢谢。 对我来说,这里的问题是按日期字段分组。
最佳答案
您可以尝试使用DATE_FORMAT
函数。
select DATE_FORMAT(date,'%Y-%m-%d'),count(*)
from monitor
WHERE date between DATE_SUB(NOW(), - INTERVAL 5 DAY) AND NOW()
group by DATE_FORMAT(date,'%Y-%m-%d');
关于mysql - 按日期时间的天选择计数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54995202/