TL;DR InfluxDB 技术提示 – Flux 时间戳
作者:Nora Mullen / 用例, 开发者, 产品
2020 年 6 月 11 日
导航至
在这篇文章中,我们分享了一些关于如何在 Flux 中使用时间戳的快速示例。
问:Flux 中有哪些时间戳格式可用?
答:有两种时间戳格式可用
Unix 时间戳
Unix 时间戳计算自 Unix 纪元(1970-01-01T00:00:00Z UTC)以来以指定单位的时间。单位由您在将数据写入 InfluxDB 时设置的精度决定。
InfluxDB 支持以下 Unix 时间戳精度
精度 | 描述 | 示例 |
---|---|---|
ns |
纳秒 | 1577836800000000000 |
us |
微秒 | 1577836800000000 |
ms |
毫秒 | 1577836800000 |
s |
秒 | 1577836800 |
以上示例代表 2020-01-01T00:00:00Z UTC。
RFC3339 时间戳
RFC3339 时间戳使用 RFC 3339 中提出的人类可读日期时间格式(例如:2020-01-01T00:00:00.00Z)。Flux 和 InfluxDB 客户端返回带有 RFC3339 时间戳的查询结果。
问:如何转换时间戳格式?
答:要将时间戳从 Unix 纳秒转换为人类可读的 RFC3339 时间戳,请使用 time()
函数。
time(v: 1568808000000000000)
// Returns 2019-09-18T12:00:00.000000000Z
要将时间戳从 RFC3339 转换为 Unix 纳秒,请使用 uint()
函数。
uint(v: 2019-09-18T12:00:00.000000000Z)
// Returns 1568808000000000000
问:如何计算两个时间戳之间的持续时间?
答:Flux 不支持使用时间类型值进行数学运算。要计算两个时间戳之间的持续时间
- 使用 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
问:如何检索当前时间?
答:要检索 UTC 当前时间,请使用 now()
函数。请注意,now()
函数在运行时被缓存,因此所有 now()
实例都返回相同的值。
now()
要检索主机系统的当前系统时间(RFC3339 格式),请导入 system 包和 system.time()
函数
import "system"
system.time()