Skip to content

数据类型

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

支持的数据类型

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

#数据类型描述
1bigint整数型
2float浮点型
3string文本值,由 Unicode 字符组成。
4datetime日期时间类型。
5boolean布尔类型,值可以是 true 或者 false
6bytea用于存储二进制数据的字节数组。如果在格式为 "JSON" 的流中使用此类型,则传入的数据需要为 base64 编码的字符串。
7array数组类型可以是简单数据或结构类型中的任何类型。
8struct复杂类型。 名称/值对的集合。 值必须是受支持的数据类型。

比较和计算的兼容性

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

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

#bigintfloatstringdatetimeboolean
bigintYYNNN
floatYYNNN
stringNNYNN
datetimeYYY, 如满足日期时间默认格式YN
booleanNNNNY

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

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

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

类型转换

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