数据类型

BOOLEAN

此类型获取布尔值 truefalse

TINYINT

8位有符号整数,最小值为-2^7,最大值为2^7 - 1

SMALLINT

16位有符号整数,最小值为-2^15,最大值为2^15 - 1

INTEGER

32位有符号整数,最小值为-2^31,最大值为2^31 - 1,可使用INT代替

BIGINT

64位有符号整数, 最小值为 -2^63 ,最大值为 2^63 - 1

REAL

real是32位不精确,可变精度, 基于IEEE标准754的二进制浮点算法的实现

DOUBLE

double是64位不精确,可变精度, 基于IEEE标准754的二进制浮点算法的实现

DECIMAL

固定精度的十进制数,支持38位精度,但18位时性能最好,有两个参数,总位数precision,小数部分的位数scale

类型定义示例:

DECIMAL(18,3)

VARCHAR

可变长度字符数据,可设置最大长度。例:varchar,varchar(12)

CHAR

定长字符数据。无参时默认长度为1,例:char,char(12)

VARBINARY

可变长度二进制数据。二进制数据必须使用前缀为Xx的十六进制格式。

DATE

日期,年月日。

DATE '2018-10-15'

TIME(P)

不带时区的时间,P为精度,默认为3。精度的可选值为 3|6|9|12,分别代表毫秒,微秒,纳秒和皮秒。

TIME '03:04:05.321'

TIME WITH TIME ZONE

带时区的时间,秒的精度为毫秒,时区使用UTC时区的偏移值表示。

TIME '03:04:05.321 +08:00'

TIMESTAMP(P)

不带时区的时间戳,是DATE和TIME(P)类型的组合,P为精度,默认为3。精度的可选值为 3|6|9|12,分别代表毫秒,微秒,纳秒和皮秒。

TIMESTAMP '2001-08-22 03:04:05.321'

TIMESTAMP(P) WITH TIME ZONE

带时区的时间戳,P为精度,默认为3。精度的可选值为 3|6|9|12,分别代表毫秒,微秒,纳秒和皮秒。时区使用UTC时区的偏移值表示。

TIMESTAMP '2001-08-22 03:04:05.321 +08:00'

INTERVAL

时间间隔,支持的间隔单位包括,YEARQUARTERMONTHWEEKDAYHOURMINUTESECONDMILLISECOND

INTERVAL '3' MONTH

JSON

JSON值类型,包括JSON对象、JSON数组、JSON字符串。

ARRAY

数组。

ARRAY['a', 'b', 'c']

MAP

键值对。

MAP(ARRAY['a', 'b', 'c'], ARRAY[1, 2, 3])

ROW

由混合类型的字段组成的行结构,其中的字段可以是任何SQL类型。

CAST(ROW(1, 2.0) AS ROW(x BIGINT, y DOUBLE))