数据类型概览

最近更新时间:2026-05-06 16:28:12

我的收藏
TCHouse-X 支持一组核心数据类型,这些类型用于定义表列、表达式值,以及函数的参数和返回值。

隐式类型转换原则

TCHouse-X 仅支持有限的隐式类型转换。这种限制是为了防止因意外的转换行为而产生不可预期的结果。

禁止隐式转换(需要 CAST())

字符串与数值/布尔类型: TCHouse-X 不会在 STRING 类型与任何数值类型(如 INT, BIGINT 等)或 BOOLEAN 类型之间执行隐式转换。
注意:
遇到此类转换需求时,请始终显式使用 CAST() 函数。

允许隐式转换(自动提升)

数值类型之间的提升: TCHouse-X 会在数值类型之间,从“较小或精度较低”的类型向“较大或精度更高”的类型执行隐式转换。
示例: SMALLINT 可以隐式转换为 BIGINTFLOAT
降级限制: 相反地,从“较大或精度较高”的类型向“较小或精度较低”的类型转换,如将 DOUBLE 转换为 FLOAT,或将 INT 转换为 TINYINT,必须在查询中显式调用 CAST()

TCHouse-X 内置数据类型一览表

类型
范围/约束
描述及说明
BOOLEAN
TRUEFALSE
TCHouse-X 兼容 MySQL 协议:布尔值 TRUEFALSE 在查询结果中分别以数值 10 形式展示。
TINYINT
[-128, 127]
TCHouse-X 内表暂不支持 TINYINT 类型,建表时该类型将自动转换为 INT 类型。
SMALLINT
[-32768, 32767]
TCHouse-X 内表暂不支持 SMALLINT 类型,建表时该类型将自动转换为 INT 类型。
INT
[-2147483648, 2147483647]

BIGINT
[-9223372036854775808, 9223372036854775807]

FLOAT
正数范围:[1.40129846432481707e-45 , 3.40282346638528860e+38]
负数范围:[-3.40282346638528860e+38, -1.40129846432481707e-45]
单精度浮点数,6 到 9 位有效数字。
DOUBLE
正数范围: [4.94065645841246544e-324, 1.79769313486231570e+308]
负数范围: [-1.79769313486231570e+308, -4.94065645841246544e-324]
双精度浮点数,15 到 17 位有效数字。
DECIMAL
[-10^38 + 1, 10^38 − 1]
高精度定点数。
- 精度 (M): 有效数字总数 [1, 27]
- 小数位 (D): 小数位数字数量 [0, 9]
- 约束:M >= D,整数位最多 18 位
CHAR
长度范围: 1-255
定长字符串,TCHouse-X 内表暂不支持 CHAR 类型,建表时该类型将自动转换为 STRING 类型。
VARCHAR
长度范围: 1-65535
定长字符串,TCHouse-X 内表暂不支持 VARCHAR 类型,建表时该类型将自动转换为 STRING 类型。
STRING
最大支持 2 GB
变长字符串,使用 UTF-8 编码存储。
DATE
['0001-01-01', '9999-12-31']
仅包含日期信息。
[0001-01-01, 9999-12-31]
包含日期和时间(年、月、日、时、分、秒),包含本地时区信息。精度为微秒。
[0001-01-01, 9999-12-31]
包含日期和时间(年、月、日、时、分、秒),不包含本地时区信息。精度为微秒。