mysql - 按日期时间的天选择计数组

标签 mysql sql date group-by

我有一个表监视器,其字段之一是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/

相关文章:

Java 字符串哈希码作为 Mysql ID

mysql - 两列,相同的数据,不同的Where子句

mysql - 如何在多列上 LEFT JOIN 3 个表

sql - 某些列中的结果为空

PHP 时间之前(返回错误时间)

sql - 如何在SQL中显示两个给定日期之间的所有日期

ios - 将 UTC 日期格式转换为本地 nsdate

swift - 按日期排序 HealthKit 数据

linux - Unix 纪元时间戳到人类可读日期时间和反向转换

MySQL/SQL 排序依据和条件