SQL数据类型
InfluxDB集群版使用Apache Arrow DataFusion实现的SQL。数据类型定义了可以存储在表列中的值的类型。在InfluxDB的SQL实现中,一个测量被结构化为一个表,而标签、字段和时间戳作为列公开。
SQL和Arrow数据类型
在SQL中,每个列、表达式和参数都有一个数据类型。数据类型是一个属性,它指定了对象可以持有的数据类型。DataFusion使用Arrow类型系统进行查询执行。所有SQL类型都映射到Arrow数据类型。
SQL和Arrow数据类型在查询执行期间操作数据和返回查询结果方面都发挥着重要作用。
在执行类型转换操作时,除非您使用arrow_cast()
将类型转换为特定的Arrow类型,否则请转换为SQL数据类型。SQL中的名称和标识符默认为不区分大小写。例如
SELECT
'99'::BIGINT,
'2019-09-18T00:00:00Z'::timestamp
字符串类型
SQL数据类型 | Arrow数据类型 | 描述 |
---|---|---|
STRING | UTF8 | 字符字符串,可变长度 |
CHAR | UTF8 | 字符字符串,固定长度 |
VARCHAR | UTF8 | 字符字符串,可变长度 |
TEXT | UTF8 | 可变长度不受限制 |
示例字符串字面量
'abcdefghijk'
'time'
'h2o_temperature'
数值类型
以下数值类型受支持
SQL数据类型 | Arrow数据类型 | 描述 |
---|---|---|
BIGINT | INT64 | 64位有符号整数 |
BIGINT UNSIGNED | UINT64 | 64位无符号整数 |
DOUBLE | FLOAT64 | 64位浮点数 |
整数
InfluxDB SQL支持64位有符号整数
最小有符号整数: -9223372036854775808
最大有符号整数: 9223372036854775807
示例整数字面量
234
-446
5
无符号整数
InfluxDB SQL支持64位无符号整数
最小无符号整数: 0
最大无符号整数: 18446744073709551615
示例无符号整数字面量
无符号整数字面量是由转换为BIGINT UNSIGNED
类型的整数组成的
234::BIGINT UNSIGNED
458374893::BIGINT UNSIGNED
5::BIGINT UNSIGNED
浮点数
InfluxDB SQL支持64位双精度浮点值。浮点数可以是小数点、十进制整数或十进制分数。
示例浮点字面量
23.8
-446.89
5.00
0.033
日期和时间数据类型
InfluxDB SQL支持以下日期/时间数据类型
SQL数据类型 | Arrow数据类型 | 描述 |
---|---|---|
时间戳 | 时间戳(Nanosecond, None) | 无时区偏移的纳秒时间戳 |
时间间隔 | 时间间隔(IntervalMonthDayNano) | 具有指定持续时间的时时间间隔 |
时间戳
时间类型是使用纳秒精度的单个时间点。
以下日期和时间格式受支持
YYYY-MM-DDT00:00:00.000Z
YYYY-MM-DDT00:00:00.000-00:00
YYYY-MM-DD 00:00:00.000-00:00
YYYY-MM-DDT00:00:00Z
YYYY-MM-DD 00:00:00.000
YYYY-MM-DD 00:00:00
示例时间戳字面量
'2023-01-02T03:04:06.000Z'
'2023-01-02T03:04:06.000-00:00'
'2023-01-02 03:04:06.000-00:00'
'2023-01-02T03:04:06Z'
'2023-01-02 03:04:06.000'
'2023-01-02 03:04:06'
间隔
INTERVAL数据类型可以使用以下精度
- 纳秒
- 微秒
- 毫秒
- 秒
- 分钟
- 小时
- 天
- 周
- 月
- 年
- 世纪
示例时间间隔字面量
INTERVAL '10 minutes'
INTERVAL '1 year'
INTERVAL '2 days 1 hour 31 minutes'
布尔类型
布尔值存储TRUE或FALSE值。
SQL数据类型 | Arrow数据类型 | 描述 |
---|---|---|
BOOLEAN | 布尔值 | 真或假值 |
示例布尔值字面量
true
TRUE
false
FALSE
不支持的SQL类型
以下SQL类型目前不受支持
- UUID
- BLOB
- CLOB
- BINARY
- VARBINARY
- REGCLASS
- NVARCHAR
- CUSTOM
- ARRAY
- ENUM
- SET
- DATETIME
- BYTEA
与参数兼容的数据类型
有关可用参数替换的数据类型信息,请参阅如何使用SQL参数化查询。
这个页面有帮助吗?
感谢您的反馈!