Skip to content

数据类型

本章节会介绍 Ignite 支持的 SQL 数据类型列表,例如字符串、数值和日期/时间类型。

每个 SQL 类型都映射到 Ignite 原生支持的编程语言或驱动的特定类型。

1.布尔类型

1.1.BOOLEAN

可选值:TRUEFALSE

2.数值类型

2.1.TINYINT

可选值:[-128, 127]

2.2.SMALLINT

可选值:[-32768, 32767]

2.3.INT

可选值:[-2147483648, 2147483647]

别名:INTEGER

2.4.BIGINT

可选值:[-9223372036854775808, 9223372036854775807]

2.4.DECIMAL

可选值:可选择精度的确切数。

默认精度:32767。

最大精度:32767。

默认标度:0。

最大标度:16383

2.4.1.Ignite中Decimal的精度和标度

Ignite 在处理数值时具有以下特性:

  • 标度可以大于精度。这时该列将仅包含小数值,并且小数点右侧的 0 位数必须与标度减去精度相同,例如如果使用以下定义:

    sql
    NUMERIC(3, 6)

    可以存储介于 -0.000999(含) 和 0.000999(含)之间的值。

  • BigDecimal数据类型派生为DECIMAL(28, 6),如果小数点后超过 6 位数字,它们将被截断。如果传递的值大于精度,则会发生超出范围的异常。

    要存储较大的数值,需要强制转换为自定义精度,例如CAST(? as DECIMAL(100, 50))

2.5.FLOAT

可选值:单精度(32 位)IEEE 754 浮点数。

别名:REAL 特殊值:NaN-Infinity+Infinity

2.6.DOUBLE

可选值:双精度(64 位)IEEE 754 浮点数。

别名:DOUBLE PRECISION 特殊值:NaN-Infinity+Infinity

3.字符字符串类型

3.1.VARCHAR

可选值:Unicode 字符串。

别名:CHARACTER VARYING

默认长度:65536

最大长度:65536

3.2.CHAR

固定长度的 Unicode 字符串,用空格填充。

默认长度:1

最大长度:65536

提示

此类型只能在表达式中使用(例如 CAST('a' AS CHAR(3)),不能在 DDL 语句中使用,例如 CREATE TABLEALTER TABLE ADD COLUMN 等,请改用 VARCHAR

4.二进制字符串类型

4.1.VARBINARY

可选值:二进制数据(字节数组)。

别名:BINARYBINARY VARYING

默认长度:65536

最大长度:65536

5.日期和时间类型

5.1.TIME

可选值:时间数据类型,格式为 hh:mm[:ss]

默认精度:0

最大精度:3

5.2.DATE

可选值:日期数据类型。

格式为:yyyy-MM-dd

5.2.TIMESTAMP

警告

时间戳数据类型仅支持最高毫秒的精度(3 个符号),超过第 3 个符号的任何值都将被忽略。

可选值:时间戳数据类型,格式为 yyyy-MM-dd hh:mm:ss[.mmm]

默认精度:6

最大精度:9

6.其他类型

6.1.UUID

可选值:通用唯一标识符,这是一个 128 位值。

示例:7d24b70e-25d5-45ed-a5fa-39d8e1d966b9

7.隐式类型转换

在 Ignite 3 中,隐式类型转换仅限于同一类型系列中的类型,下表列出了可能的隐式转换:

类型系列可用类型
布尔BOOLEAN
数值TINYINTSMALLINTINTBIGINTDECIMALFLOATDOUBLE
字符型字符串VARCHARCHAR
二进制字符串VARBINARYBINARY
日期DATE
时间TIME
日期时间TIMESTAMPTIMESTAMP WITH LOCAL TIME ZONE
UUIDUUID

18624049226