文档

处理持续时间

duration 类型表示具有纳秒精度的时长。

类型名称: duration

持续时间语法

持续时间字面量包含整数和单位说明符。Flux 支持以下单位说明符

  • ns: 纳秒
  • us: 微秒
  • ms: 毫秒
  • s: 秒
  • m: 分钟
  • h: 小时
  • d: 天
  • w: 周
  • mo: 日历月
  • y: 日历年
1ns // 1 nanosecond
1us // 1 microsecond
1ms // 1 millisecond
1s  // 1 second
1m  // 1 minute
1h  // 1 hour
1d  // 1 day
1w  // 1 week
1mo // 1 calendar month
1y  // 1 calendar year

3d12h4m25s // 3 days, 12 hours, 4 minutes, and 25 seconds

不要在持续时间字面量中包含前导零

持续时间字面量的整数部分不应包含前导零。前导零会被解析为单独的整数文字。例如

01m // parsed as 0 (integer literal) and 1m (duration literal)
02h05m // parsed as 0 (integer literal), 2h (duration literal), 0 (integer literal), and 5m (duration literal)

将数据类型转换为持续时间

使用 duration() 函数 将以下 基本类型 转换为持续时间

  • string: 解析为持续时间字符串并转换为持续时间。
  • int: 解析为纳秒并转换为持续时间。
  • uint: 解析为纳秒并转换为持续时间。
duration(v: "1h30m")
// Returns 1h30m

duration(v: 1000000)
// Returns 1ms

duration(v: uint(v: 3000000000))
// Returns 3s

Flux 不支持持续时间列。

对持续时间执行操作

对持续时间执行算术运算

要执行诸如加、减、乘或除持续时间值之类的操作

  1. 使用 int()uint() 将持续时间值转换为数值。
  2. 使用 算术运算符 对数值进行运算。
  3. 使用 duration() 将计算出的数值转换为持续时间。
duration(v: int(v: 6h4m) + int(v: 22h32s))
// Returns 1d4h4m32s

duration(v: int(v: 22h32s) - int(v: 6h4m))
// Returns 15h56m32s

duration(v: int(v: 32m10s) * 10)
// Returns 5h21m40s

duration(v: int(v: 24h) / 2)
// Returns 12h

将持续时间添加到时间值

  1. 导入 date
  2. 使用 date.add() 将持续时间添加到时间值。
import "date"

date.add(d: 1w, to: 2021-01-01T00:00:00Z)
// Returns 2021-01-08T00:00:00.000000000Z

从时间值中减去持续时间

  1. 导入 date
  2. 使用 date.sub() 从时间值中减去持续时间。
import "date"

date.sub(d: 1w, from: 2021-01-01T00:00:00Z)
// Returns 2020-12-25T00:00:00.000000000Z

此页内容对您有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在一样使用它,而无需更改任何代码。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最近数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看