如何在特定月份的特定时间之间选择数据?
Posted
技术标签:
【中文标题】如何在特定月份的特定时间之间选择数据?【英文标题】:How can I select the data between some specific hours in a specific month? 【发布时间】:2019-10-04 00:24:16 【问题描述】:我已经让 InfluxDB 工作并获取有关某些服务的监控数据(值只有 1 表示启动,0 表示关闭)。对于管理,我需要从数据库中选择特定月份以及夜间或白天的值。例如:我想选择 2019 年 4 月 08:00AM 到 07:00PM(白天)之间的所有数据(无论是 1 还是 0)
这是我尝试过的:
SELECT value FROM probe_success
WHERE "instance" = 'https://myservice/api' AND time >= '08:00:00' AND time < '19:00:00'
AND time >= '2019-04-01' AND time <= '2019-04-30'
但我有一个错误:
"results":["statement_id":0,"error":"无效操作:时间和 *influxql.StringLiteral 不兼容"]
谁能告诉我我做错了什么或指出我正确的方向?
非常感谢!
【问题讨论】:
您找到解决方案了吗? 我在 2 年前遇到过这个问题,但他们仍然不支持 OR 在 WHERE 语句中,如下面的答案中所述。这是他们在文档页面上所说的:注意 InfluxDB 不支持在 WHERE 子句中使用 OR 来指定多个时间范围。 【参考方案1】:好的,经过一番研究,我发现不可能在“WHERE”子句中使用“OR”语句来指定多个时间范围。见this。我通过在 for 循环中每天发送单独的请求然后连接所有结果来解决这个问题。我承认这不是最好的解决方案,但既然他们说不可能,我猜这是解决方法。
【讨论】:
以上是关于如何在特定月份的特定时间之间选择数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不同的数据帧中选择特定时间段内的点,然后根据纬度/经度选择这两个点之间的距离