时间序列函数
以下函数旨在与 timeSeries*()
聚合函数一起使用,例如
timeSeriesInstantRateToGrid,
timeSeriesLastToGrid 等。
timeSeriesRange
生成时间戳范围。
语法
参数
start_timestamp
- 范围的开始。end_timestamp
- 范围的结束。step
- 范围的步长,以秒为单位。
返回值
- 返回时间戳范围
[start_timestamp, start_timestamp + step, start_timestamp + 2 * step, ..., end_timestamp]
。
示例
查询:
结果:
注意
- 如果函数
timeSeriesRange()
的start_timestamp
等于end_timestamp
,则返回包含该时间戳的 1 元素数组:[start_timestamp]
- 函数
timeSeriesRange()
与函数 range 类似。 例如,如果时间戳类型为DateTime64(3)
且start_timestamp < end_timestamp
,那么timeSeriesRange(start_timestamp, end_timestamp, step)
返回的结果与以下表达式相同:
timeSeriesFromGrid
将值数组 [value1, value2, value3, ..., valueN]
转换为元组数组
[(start_timestamp, value1), (start_timestamp + step, value2), (start_timestamp + 2 * step, value3), ..., (end_timestamp, valueN)]
。
如果某些值 [value1, value2, value3, ...]
为 NULL
,则该函数不会将这些空值复制到结果数组中,
但仍会增加当前时间戳,即例如对于 [value1, NULL, value2]
,函数将返回
[(start_timestamp, value1), (start_timestamp + 2 * step, value2)]
。
当前时间戳会按步长增加,直到它大于 end_timestamp
,每个时间戳将与指定值数组中的值结合。如果值的数量与时间戳的数量不匹配,函数将抛出异常。
语法
参数
start_timestamp
- 网格的开始。end_timestamp
- 网格的结束。step
- 网格的步长,以秒为单位。values
- 值数组[value1, value2, ..., valueN]
。
返回值
- 返回源值数组中的值与由
start_timestamp
和step
描述的规则时间网格相结合的时间戳。
示例
查询:
结果:
注意
函数 timeSeriesFromGrid(start_timestamp, end_timestamp, step, values)
返回的结果与以下表达式相同: