SQL 数据类型
InfluxDB 3 Core 使用 Apache Arrow DataFusion 实现 SQL。数据类型定义了可以存储在表列中的值的类型。在 InfluxDB 的 SQL 实现中,一个 **measurement** 被结构化为一张表,而 **tags**、**fields** 和 **timestamps** 则被公开为列。
SQL 和 Arrow 数据类型
在 SQL 中,每一列、表达式和参数都有一个数据类型。数据类型是指定对象可以保存的数据类型的属性。DataFusion 在查询执行中使用 Arrow 类型系统。所有 SQL 类型都映射到 Arrow 数据类型。
SQL 和 Arrow 数据类型在查询执行期间如何操作数据以及在查询结果中如何返回数据方面都起着重要作用。
执行转换操作时,请转换为 SQL 数据类型,除非您使用 arrow_cast() 转换为特定的 Arrow 类型。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 支持以下 DATE/TIME 数据类型:
| SQL 数据类型 | Arrow 数据类型 | 描述 |
|---|---|---|
| TIMESTAMP | Timestamp(Nanosecond, None) | 纳秒时间戳,无时区偏移 |
| INTERVAL | Interval(IntervalMonthDayNano) | 具有指定持续时间的事件间隔。 |
Timestamp
时间类型是使用纳秒精度表示的单个时间点。
支持以下日期和时间格式:
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 数据类型可以与以下精度一起使用:
- 纳秒
- 微秒
- 毫秒
- second
- minute
- 小时
- 天
- 周
- 月
- 年
- 世纪
间隔文字示例
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 查询。
此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 InfluxDB 3 Core 和本文档提供反馈和错误报告。要获得支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。