# 数据类型
在 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
值,我们遵循以下规则:
- 与 nil 比较总是返回 false
- 用 nil 计算总是返回 nil
# 类型转换
可使用内置函数 cast(col, targetType)
在运行时进行显式类型转换。详情请参考 cast。
← 函数 eKuiper 词汇元素 →