如何使用mysql查询获取3分钟间隔的数据

gajydyqb  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(575)

在数据库中,我们每一分钟都有数据,就像时间一样 2020-01-01 9:00:00, 2020-01-01 9:01:00 ……我们需要以3分钟的间隔获取数据,例如数据库中有时间字段 2020-01-01 9:00:00 to 2020-10-01 9:00:00 . 我需要使用查询得到3分钟间隔的给定从,到日期的输出应该是

2020-01-01 9:00:00
2020-01-01 9:03:00
2020-01-01 9:06:00

如果我们给出起始日期 2020-01-01 9:00:00 迄今为止 2020-01-01 9:07:00 间隔是3。

uurity8g

uurity8g1#

一个选项使用 timestamp_diff() 和算术:

select t.*
from mytable t
where 
        mydate >= '2020-01-01 9:00:00'
    and mydate <  '2020-01-01 9:07:00'
    and timestampdiff(second, mydate, '2020-01-01 9:00:00') % (60 * 3) = 0

这是通过确保开始日期和当前行上的日期之间的差值(以秒为单位)是180秒(即3分钟)的倍数来实现的。
如果不是所有记录都有 0 第二,你可以在第二部分稍加放松,把注意力集中在以下几分钟:

and timestampdiff(minute, mydate, '2020-01-01 9:00:00') % * 3 = 0

相关问题