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

Posted

技术标签:

【中文标题】如何使用 Mysql 查询获取 3 分钟间隔数据【英文标题】:How to fetch 3 minute interval data using Mysql query 【发布时间】:2020-10-16 05:16:36 【问题描述】:

在数据库中,我们每隔一分钟就有一次数据,比如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。

【问题讨论】:

【参考方案1】:

一个选项使用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

【讨论】:

以上是关于如何使用 Mysql 查询获取 3 分钟间隔数据的主要内容,如果未能解决你的问题,请参考以下文章

Mysql如何以10分钟间隔选择计数聚合结果

按 15 分钟间隔对 mysql 查询进行分组

要求:oracle数据库,按照时间间隔2分钟查询数据,结果如第一行数据是13:55的数据,第二条就是13:57的

使用oracle,如何做到某个时间段内每间隔1分钟查询出一条记录?

如何从 yfinance 获取特定时间和日期的 1 分钟价格数据?

想请教下在oracle中如何实现获取一张表中,设定开始时间和结束时间,并且根据时间间隔来查询出来的数据。