mysql - 查询仅选择每 5 分钟的时间戳

标签 mysql

我想知道是否可以有一个查询来检索时间戳为 5 分钟的倍数的所有数据。 (00h00、00h05、00h10 等...)

这是我的查询:

SELECT io_data.Timestamp, io.Name AS ioName, io_data.ReadingValue
FROM io_data io
WHERE io_data.Actif = 1 
  AND io.ID_IO_Type = 3
ORDER BY io.Name, io.ID_IO_Type, io_data.Timestamp ASC

这是因为系统每 3 秒(在某些情况下)或每 7.5 秒、15 秒、30 秒或 1 分钟(在其他情况下)检索一次值。这取决于客户的设置。但是,我们做了一个图表,其中包含太多数据,我只想获取每 X 分钟(1、5、10 等...分钟)的数据

如果可能的话,我不知道该怎么做。

最佳答案

无需转换为分钟,只需取时间戳列的分钟部分即可:

SELECT io.Timestamp, io.Name AS ioName, io.ReadingValue
FROM io_data io
WHERE io.Actif = 1 
  AND io.ID_IO_Type = 3
AND minute(io.TimeStamp) % 5 = 0
ORDER BY io.Name, io.ID_IO_Type, io.Timestamp ASC

关于mysql - 查询仅选择每 5 分钟的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43127772/

相关文章:

mysql - 左连接查询和 select 计数在 MySQL 中有效,但在 MS SQL Server 2012 中无效

PHP mysql 获取两个日期之间的减法

mysql - 以相同顺序查询一系列 id [MySQL]

PHP SQL 从 2 个表中获取数据并输出想要的信息

mysql - 将 Rails 模型与不同名称的 mysql 数据库表关联

MySQL 子查询 - 仅查找 LEFT JOIN 中的第一条记录

MySQL - 有没有办法更改更新的 ENCLOSED IN 字符?

mysql - mysql 复制可以配置为防止删除数据库被复制吗?

mysql - 快速选择 WHERE IN 与标志类似

php - 具有 2 个变量的循环 SQL 查询