我需要编写一个 InfluxQL 字符串,以便获取一周的数据,但不是
|> range(start: -1w)
,而是日历周,即在我的例子中 - 02.10.2023 00:00:00。
了解如何从日历月/季度/年开始获取数据也很有趣。
我尝试使用
|> range(start: date.truncate(t: now(), unit: 1w))
|> range(start: -1w)
但我要么得到当天的开始时间,要么得到 7 天前一天的开始时间。
我还尝试将 date.add()
与 date.weekDay()
结合使用,但出现错误,因为 d:
参数需要持续时间,而不是天数。
我需要日历一周的开始时间。
最后,
date.truncate
和timeShift
方法的结合帮助我解决了我的问题。
import "date"
from(bucket: "training")
|> range(start: date.truncate(t: -1y, unit: 1w))
|> aggregateWindow(every: 1w, fn: sum, createEmpty: true)
|> timeShift(duration: -3d)
|> fill(column: "_value", value: 0.0)