使用时间戳字段按天分组

Jam*_* MV 7 mysql

我的表架构如下所示:

+--------------------+--------------+------+-----+-------------------+-----------------------------+
| Field              | Type         | Null | Key | Default           | Extra                       |
+--------------------+--------------+------+-----+-------------------+-----------------------------+
| id                 | int(11)      | NO   | PRI | NULL              | auto_increment              |
| name               | varchar(50   | NO   |     | 0                 |                             |
| modified           | timestamp    | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| created            | timestamp    | NO   |     | CURRENT_TIMESTAMP |                             |
+--------------------+--------------+------+-----+-------------------+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

我想获得名称的计数并按按天修改的名称数量分组,目前我只能按完整日期(包括时间戳)分组,例如:

SELECT name, count(*) FROM mytable GROUP BY modified
Run Code Online (Sandbox Code Playgroud)

提前致谢。

Rak*_*lam 9

使用 MySQLDATE()函数从时间戳中提取日期:

SELECT name, count(*) FROM mytable GROUP BY DATE(mytable.modified);
Run Code Online (Sandbox Code Playgroud)

DATE()函数从日期或日期时间表达式中提取日期值。


Wil*_*nes 6

根据您的意思,您有几种选择; 这是你的备忘单。

DAYNAME(date) 一周中的某一天(周一至周日)

DAYOFMONTH(date) 一个月中的第几天 (1-31)

DAYOFWEEK(date) 一周中的某一天 (1-7)

DAYOFYEAR(date) 一年中的某一天 (1-365)

编辑:

如果您想按整个日期(而不是特定日期)分组,请忽略您可以使用的时间

DATE_FORMAT(date, format)

可以在上面的链接中找到格式说明符的完整列表,但您可能需要的是:

Date_FORMAT(date, '%Y-%m-%d')

这会将日期格式化为“YYYY-MM-DD”,您可以按此分组。