Documentation

处理整数

一个 整数 类型表示一个有符号的64位整数。

类型名称: int
最小值: -9223372036854775808
最大值: 9223372036854775807

整数语法

一个整数字面量包含一个或多个数字(0-9),可选地以 -开头以表示负数。 -0 等价于 0,并不是负数。

0
2
1254
-1254

将数据类型转换为整数

使用int()函数将以下基本类型转换为整数:

  • string: 返回数字字符串的整数值 ([0-9])
  • 布尔值: 返回 1 表示 true0 表示 false
  • duration: 返回持续时间中的纳秒数
  • 时间: 返回等效的 纳秒纪元时间戳
  • float: 在小数点处截断浮动值
  • uint: 返回无符号整数的整数等价值
int(v: "123")
// 123

int(v: true)
// Returns 1

int(v: 1d3h24m)
// Returns 98640000000000

int(v: 2021-01-01T00:00:00Z)
// Returns 1609459200000000000

int(v: 12.54)
// Returns 12

在转换为整数之前先四舍五入浮点值

当将 浮点数 转换为整数时, int() 截断 浮点值的小数部分(例如 12.54 转换为 12)。 您可能希望在转换之前将浮点值四舍五入到最接近的整数(12.54 转换为 13)。 要做到这一点:

  1. 导入math
  2. 在将浮点值转换为整数之前,使用 math.round() 来四舍五入。
import "math"

int(v: math.round(x: 12.54))
// Returns 13

将十六进制字符串转换为整数

将数字的十六进制字符串表示转换为整数:

  1. 导入 contrib/bonitoo-io/hex
  2. 使用 hex.int() 将十六进制字符串转换为整数。
import "contrib/bonitoo-io/hex"

hex.int(v: "1e240")
// Returns 123456

将列转换为整数

Flux 允许您遍历 表流 中的行并将列转换为整数。

_value 列转换为整数,使用toInt() 函数

toInt() 只作用于 _value 列。

data
    |> toInt()
给定以下输入数据:
时间(浮动)
2021-01-01T00:00:00Z1.23
2021-01-01T02:00:00Z4.56
2021-01-01T03:00:00Z7.89
2021-01-01T04:00:00Z10.11
上面的例子返回:
_时间_值 (int)
2021-01-01T00:00:00Z1
2021-01-01T02:00:00Z4
2021年1月1日03:00:00Z7
2021-01-01T04:00:00Z10

将任何列转换为整数:

  1. 使用 map() 遍历并重写行。
  2. 使用 int() 将列值转换为整数。
data
    |> map(fn: (r) => ({ r with uid: int(v: r.uid) }))
给定以下输入数据:
_时间索引 (字符串)
2021-01-01T00:00:00Z100010024
2021-01-01T02:00:00Z100050213
2021-01-01T03:00:00Z200130763
2021-01-01T04:00:00Z101420099
上面的例子返回:
时间索引 (int)
2021-01-01T00:00:00Z100010024
2021-01-01T02:00:00Z100050213
2021-01-01T03:00:00Z200130763
2021-01-01T04:00:00Z101420099

对整数进行操作

对整数进行算术运算

要进行像加、减、乘或除整数的操作,使用 Flux 算术运算符。 操作数必须是相同类型。 操作返回一个整数。

当使用整数操作数时,小数部分的结果会在小数点处被截断。

1 + 45
// Returns 46

1 - 45
// Returns -44

12 * 100
// Returns 1200

100 / 200
// Returns 0

10 ^ 2
// Returns 100

对整数执行按位操作

使用experimental/bitwise 对整数进行按位操作。

import "experimental/bitwise"

bitwise.sand(a: 12, b: 21)
// Returns 4

bitwise.sor(a: 12, b: 21)
// Returns 29

bitwise.sxor(a: 12, b: 21)
// Returns 25

bitwise.sclear(a: 12, b: 21)
// Returns 8

bitwise.snot(a: 12)
// Returns -13

bitwise.slshift(a: 12, b: 21)
// Returns 25165824

bitwise.srshift(a: 21, b: 4)
// Returns 1

比较整数

使用 Flux comparison operators 来比较整数。操作数必须是相同类型。此操作将返回一个布尔值。

12345600 == 12345601
// Returns false

2 > -2
// Returns true


Flux的未来

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

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: