首页 > 解决方案 > 如何计算mysql中特定日期时间范围之间的数据发生次数

问题描述

对于这种新手问题,我很抱歉,但这对我来说很难。我的MySQL桌子上有高频股票价格。在每个交易日,数据从第 118:00天到第 2天开始17:00。我想统计上述交易时间之间每个交易日的数据出现次数。我知道如何计算一天,就像下面的代码一样

SELECT COUNT(*) FROM table WHERE date BETWEEN '2021-08-25 18:00:00' AND '2021-08-26 17:00:00' 

但是如何计算表格中的所有天数?

我的表如下所示: 在此处输入图像描述

我想要看起来像这样: 在此处输入图像描述

提前致谢。

标签: mysql

解决方案


感谢您的“一天”从下午 6 点开始。因此,我们可以通过减去 18 小时来标准化每个日期时间,然后聚合:

SELECT DATE(date - INTERVAL 18 HOUR), COUNT(*) AS cnt
FROM yourTable
GROUP BY 1;

推荐阅读