首先,我们需要明确一下,MySQL中的时间类型有很多种,包括DATE、TIME、DATETIME、TIMESTAMP等。
如果我们想要将一个字段按天/月/年分组,通常需要使用到MySQL中的日期函数,如DATE()、MONTH()、YEAR()等。
下面是将字段time按天分组的攻略:
- 首先,我们需要创建一个测试表:
sql
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
- 插入若干测试数据:
sql
INSERT INTO `test` (`time`)
VALUES
('2022-01-01 08:15:00'),
('2022-01-01 09:30:00'),
('2022-01-02 10:20:00'),
('2022-01-03 11:40:00'),
('2022-02-01 12:50:00'),
('2022-03-01 13:20:00');
- 通过DATE()函数将time字段按天取出:
sql
SELECT DATE(`time`) AS `day`, COUNT(*) AS `count`
FROM `test`
GROUP BY `day`;
这条语句的输出结果应该是这样的:
day | count |
---|---|
2022-01-01 | 2 |
2022-01-02 | 1 |
2022-01-03 | 1 |
2022-02-01 | 1 |
2022-03-01 | 1 |
可以看到,我们通过DATE()函数将time字段按天分组成功了。
- 如果想要将time字段按月或年分组,只需要将DATE()函数改为MONTH()或YEAR()即可。例如,按月分组的语句应该是这样的:
sql
SELECT MONTH(`time`) AS `month`, COUNT(*) AS `count`
FROM `test`
GROUP BY `month`;
输出结果如下:
month | count |
---|---|
1 | 4 |
2 | 1 |
3 | 1 |
可以看到,我们成功地将time字段按月分组了。
总之,只要掌握了MySQL中的日期函数,将字段按天/月/年分组就不会太难了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql 将字段time按天/月/年分组 - Python技术站