每天查询特定时间的InfluxDB,由于UTC和我所在的时区而跨不同的天

问题描述 投票:0回答:1

我正在查询influxdb以在grafana中生成图形。 Influxdb包含每5秒钟带有时间戳的kW太阳能产量。我想将每天的太阳能产量从4PM汇总到9PM。在UTC中,它变成2300至0400。我可以做2300至0000,也可以分别从0000至0400,但是我不知道如何将它们与grafana一起添加。或者在一个查询中执行2300-0400会很好。这是我对2300至0000和0000至0400的2个查询:

SELECT first("integral") FROM (  SELECT integral("kW",1h) FROM "solar"  WHERE TIME >'2019-10-04T23:00:00Z' GROUP BY time(1h))  WHERE TIME >'2019-10-04T23:00:00Z' GROUP BY time(24h,23h)
SELECT first("integral") FROM (  SELECT integral("kW",1h) FROM "solar"  WHERE TIME >'2019-10-05' GROUP BY time(4h))  WHERE TIME >'2019-10-05' GROUP BY time(24h)

更新:以下适用于我想要的时间范围的1小时:

SELECT first("integral") FROM (  SELECT integral("kW",1h) FROM "solar"  WHERE TIME >'2019-10-04 16:00:00' GROUP BY time(1h))  WHERE TIME >'2019-10-04 16:00:00' GROUP BY time(24h,16h) tz('America/Los_Angeles')

但是,如果我将时间跨度增加到2h,则会返回错误的结果:

SELECT first("integral") FROM (  SELECT integral("kW",1h) FROM "solar"  WHERE TIME >'2019-10-04 16:00:00' GROUP BY time(2h))  WHERE TIME >'2019-10-04 16:00:00' GROUP BY time(24h,16h) tz('America/Los_Angeles') 
time intervals grafana influxdb
1个回答
0
投票

您可以使用时区TZ子句https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/#the-time-zone-clause

您还可以在time(5h)的23:00组开始(它基本上将包含第二天的数据并保存到当天的23:00),然后获取最后(而不是第一)结果持续24小时。

所以类似(请注意附加的as kW别名]

SELECT last("kW") FROM (  SELECT integral("kW",1h) as kW FROM "solar"  WHERE TIME >'2019-10-04T23:00:00Z' GROUP BY time(5h))  WHERE TIME >'2019-10-04T23:00:00Z' GROUP BY time(24h)

或执行以上+ TZ。不确定在您的用例中到底该用什么。

© www.soinside.com 2019 - 2024. All rights reserved.