使用 Flux 操作时间戳
此页面记录了早期版本的 InfluxDB OSS。InfluxDB OSS v2 是最新的稳定版本。请参阅 InfluxDB v2 文档。
存储在 InfluxDB 中的每个点都有一个关联的时间戳。使用 Flux 处理和操作时间戳以满足您的需求。
转换时间戳格式
Unix 纳秒到 RFC3339
使用 time()
函数 将 Unix 纳秒 时间戳 转换为 RFC3339 时间戳。
time(v: 1568808000000000000)
// Returns 2019-09-18T12:00:00.000000000Z
RFC3339 到 Unix 纳秒
使用 uint()
函数 将 RFC3339 时间戳转换为 Unix 纳秒时间戳。
uint(v: 2019-09-18T12:00:00.000000000Z)
// Returns 1568808000000000000
计算两个时间戳之间的持续时间
Flux 不支持使用 time 类型 值进行数学运算。要计算两个时间戳之间的持续时间
- 使用
uint()
函数将每个时间戳转换为 Unix 纳秒时间戳。 - 从另一个 Unix 纳秒时间戳中减去一个。
- 使用
duration()
函数将结果转换为持续时间。
time1 = uint(v: 2019-09-17T21:12:05Z)
time2 = uint(v: 2019-09-18T22:16:35Z)
duration(v: time2 - time1)
// Returns 25h4m30s
Flux 不支持持续时间列类型。要在列中存储持续时间,请使用 string()
函数 将持续时间转换为字符串。
检索当前时间
当前 UTC 时间
使用 now()
函数 以 RFC3339 格式返回当前 UTC 时间。
now()
now()
在运行时缓存,因此 Flux 脚本中所有 now()
实例都返回相同的值。
当前系统时间
导入 system
包并使用 system.time()
函数 以 RFC3339 格式返回主机机器的当前系统时间。
import "system"
system.time()
system.time()
返回执行时的时间,因此 Flux 脚本中每个 system.time()
实例都返回唯一的值。
规范化不规则时间戳
要规范化不规则时间戳,请使用 truncateTimeColumn()
函数 将所有 _time
值截断为指定的单位。这在 join()
和 pivot()
操作中非常有用,在这些操作中,点应按时间对齐,但时间戳略有不同。
data
|> truncateTimeColumn(unit: 1m)
输入
_time | _value |
---|---|
2020-01-01T00:00:49Z | 2.0 |
2020-01-01T00:01:01Z | 1.9 |
2020-01-01T00:03:22Z | 1.8 |
2020-01-01T00:04:04Z | 1.9 |
2020-01-01T00:05:38Z | 2.1 |
输出
_time | _value |
---|---|
2020-01-01T00:00:00Z | 2.0 |
2020-01-01T00:01:00Z | 1.9 |
2020-01-01T00:03:00Z | 1.8 |
2020-01-01T00:04:00Z | 1.9 |
2020-01-01T00:05:00Z | 2.1 |
一起使用时间戳和持续时间
将持续时间添加到时间戳
experimental.addDuration()
函数 将持续时间添加到指定时间并返回结果时间。
通过使用 experimental.addDuration()
,您接受 实验性函数的风险。
import "experimental"
experimental.addDuration(
d: 6h,
to: 2019-09-16T12:00:00Z,
)
// Returns 2019-09-16T18:00:00.000000000Z
从时间戳中减去持续时间
experimental.subDuration()
函数 从指定时间减去持续时间并返回结果时间。
通过使用 experimental.subDuration()
,您接受 实验性函数的风险。
import "experimental"
experimental.subDuration(
d: 6h,
from: 2019-09-16T12:00:00Z,
)
// Returns 2019-09-16T06:00:00.000000000Z
此页对您有帮助吗?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度或支持合同的客户 可以 联系 InfluxData 支持。