【问题标题】:filtering data between time interval(10min) in mysql在mysql中的时间间隔(10分钟)之间过滤数据
【发布时间】:2015-07-05 22:30:21
【问题描述】:

我想以间隔(10 或 15 分钟)过滤两个日期时间值之间的数据

假设如果我想要 '2014-10-14 00:00:00' 和 '2014-10-15 01:00:00' 之间的数据,间隔 15 分钟,那么我的输出将返回

2014-10-09   01:00:00   6624.067
2014-10-09   01:15:00   6623.666
2014-10-09   01:30:00   6626.044
2014-10-09   01:45:00   6624.261
2014-10-09   02:00:00   6622.448
2014-10-09   02:15:00   6616.236
2014-10-09   03:50:00   6607.514
2014-10-09   04:00:00   6614.486

表结构为:

LogDate LogTime machine_val machine_id 2014-10-09 01:00:00 6624.067 1 2014-10-09 01:05:00 6623.666 1 2014-10-09 01:10:00 6626.044 1 2014-10-09 01:00:00 6624.261 43 2014-10-09 02:00:00 6622.448 7 2014-10-09 02:00:00 6616.236 5 2014-10-09 03:50:00 6607.514 1 2014-10-09 04:00:00 6614.486 2

我尝试对值进行分组

按日期(logdate)、小时(logtime)、分钟(logtime) div 15 分组;

concat(LogDate,' ',LogTime) >= DATE_SUB('2014-10-09 01:00:00', INTERVAL 30 MINUTE) AND concat(LogDate,' ',LogTime)

但它没有返回正确的间隔值,如 10 分钟、25 分钟...等。

任何建议

【问题讨论】:

  • 请发布您的表格结构以及您希望对数据进行何种汇总。还向我们展示您尝试了哪些查询。
  • 您可以尝试转换为 UNIX 时间,然后尝试 x div 600 而不是 x div 10
  • 您可以制作一个您感兴趣的区间的参考表并交叉加入它。我知道可能有一些特定于 MySQL 的解决方案是劳动密集型的,但我之前在 SQL Server 中使用过这种方法,效果很好。
  • 看这里:stackoverflow.com/questions/29714350/…,虽然我真的不明白你的来源如何给你想要的回应。 @bf2020 没有 mysql easymode 方法 - 您要么创建间隔表,要么在其中塞入一个凌乱的联合子查询。
  • @pala_ - +1 - 这是一个很酷的解决方案,感谢您推荐我。下次我肯定会使用这种方法...

标签: mysql sql database


【解决方案1】:

您需要使用有效的日期格式。

set @d1 = '09/10/2014';
set @t1 = '01:00:00';

SELECT concat(
    RIGHT(@d1, 4), -- year
    '-',
    RIGHT(LEFT(@d1, 5), 2), -- mont
    '-',
    LEFT(@d1, 2), -- day
    ' ',
    @t1 -- time
) AS date1;
+---------------------+
| date1               |
+---------------------+
| 2014-10-09 01:00:00 |
+---------------------+

SELECT CONCAT(
    RIGHT(@d1, 4), -- year
    '-',
    RIGHT(LEFT(@d1, 5), 2), -- mont
    '-',
    LEFT(@d1, 2), -- day
    ' ',
    @t1 -- time
) +  INTERVAL 30 MINUTE AS date1Plus;
+---------------------+
| date1Plus           |
+---------------------+
| 2014-10-09 01:30:00 |
+---------------------+

它看起来很丑,但它确实有效......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2016-04-15
    相关资源
    最近更新 更多