数据类型

在 eKuiper 中,每个列或表达式都有一个相关的数据类型。 数据类型描述(并约束)该类型的列可以容纳的一组值或可以产生的一组表达式。

支持的数据类型

以下是支持的数据类型的列表。

# 数据类型 描述
1 bigint 整数型
2 float 浮点型
3 string 文本值,由 Unicode 字符组成。
4 datetime 日期时间类型。
5 boolean 布尔类型,值可以是true 或者 false
6 array 数组类型可以是简单数据或结构类型中的任何类型。
7 struct 复杂类型。 名称/值对的集合。 值必须是受支持的数据类型。

比较和计算的兼容性

每个 sql 子句中可能都有二元操作。 在此示例中,Select temperature * 2 from demo where temperature > 20,在 select 子句中使用计算操作,在 where 子句中使用比较操作。 在二元操作中,如果使用了不兼容的数据类型,则会发生运行时错误并将其发送到目标。

数组和结构在任何二元操作中均不受支持。 下表列出了其他数据类型的兼容性。 而行标题是左操作数数据类型,列标题是右操作数数据。 关于兼容性的值,其中 Y 表示是,N 表示否。

# bigint float string datetime boolean
bigint Y Y N N N
float Y Y N N N
string N N Y N N
datetime Y Y Y, 如满足日期时间默认格式 Y N
boolean N N N N Y

日期时间字符串的默认格式是 "2006-01-02T15:04:05.000Z07:00"

对于 nil 值,我们遵循以下规则:

  1. 与 nil 比较总是返回 false
  2. 用 nil 计算总是返回 nil

类型转换

可使用内置函数 cast(col, targetType) 在运行时进行显式类型转换。详情请参考 cast