【发布时间】:2019-11-26 12:45:41
【问题描述】:
这是我目前所拥有的
SELECT messageDatestamp
, count(messageDatestamp)
From table
where messageDatestamp between '2019-01-01 07:25:42' AND date_add('2019-01-01 07:25:45' , INTERVAL 1 SECOND)
group
by UNIX_TIMESTAMP(messageDatestamp)
ORDER
BY messageDatestamp asc;
messageDatestamp 列数据
2019-01-01 07:25:43
2019-01-01 07:25:43
2019-01-01 07:25:43
2019-01-01 07:25:43
2019-01-01 07:25:43
2019-01-01 07:25:43
2019-01-01 07:25:44
2019-01-01 07:25:44
2019-01-01 07:25:44
2019-01-01 07:25:44
2019-01-01 07:25:44
2019-01-01 07:25:44
2019-01-01 07:25:44
2019-01-01 07:25:44
2019-01-01 07:25:44
2019-01-01 07:25:44
2019-01-01 07:25:44
2019-01-01 07:25:45
2019-01-01 07:25:45
2019-01-01 07:25:45
2019-01-01 07:25:45
2019-01-01 07:25:45
输出
2019-01-01 07:25:43, 6
2019-01-01 07:25:44, 11
2019-01-01 07:25:45, 12
我不想为每个日期范围执行一个 select 语句,其中结束日期每隔一秒递增一次,如下例所示。
在“2019-01-01 07:25:42”和“2019-01-01 07:26:43”之间
在“2019-01-01 07:25:42”和“2019-01-01 07:26:44”之间
在“2019-01-01 07:25:42”和“2019-01-01 07:26:45”之间
有没有办法使用一个查询来增加结束日期或添加上一个计数值?
这就是我希望 MySQL 输出的内容。
2019-01-01 07:25:43, 6 (Count is between 07:25:42 and 07:25:43)
2019-01-01 07:25:44, 17 (Count is between 07:25:42 and 07:25:44)
2019-01-01 07:25:45, 22 (Count is between 07:25:42 and 07:25:45)
【问题讨论】:
-
22如何计算?我会理解 23 或 29,但不是 22。
-
messageDatestamp 是什么类型的?只是询问,因为名称中带有标记的字段通常是 VARCHAR。
-
他们的类型是日期时间
-
07:25:42 和 07:25:45 之间的总行数为 22