首页 > 解决方案 > 在sql中按日期时间分组

问题描述

晕,我想按月(月份开始日期)计算数据和分组,然后显示日期时间,知道吗?

表_a

timestamp
2020-11-28 04:00:00
2020-11-28 05:00:00
2020-12-29 01:00:00
2020-12-29 02:00:00
2020-12-29 03:00:00

预期结果:

timestamp             count
2020-11-01 00:00:00     2
2020-12-01 00:00:00     3

我的查询是:

SELECT STR_TO_DATE(DATE_FORMAT(timestamp, '%Y-%m-dd HH'), '%Y-%m-dd HH'), count(*) as count
from table_a

但我的结果是:

timestamp    count
2020-11-00     2
2020-12-00     3

标签: mysqlsqldategroup-bymysql-8.0

解决方案


我用 add 解决了这个问题group by month(timestamp),我忽略了记录,重要的是按月分组,这是我的完整查询:

SELECT timestamp, count(*) as count
from table_a 
group by month(timestamp)

然后输出显示:

timestamp             count
2020-11-01 04:00:00     2
2020-12-01 01:00:00     3

推荐阅读