TCHouse-X 支持一组核心数据类型,这些类型用于定义表列、表达式值,以及函数的参数和返回值。
隐式类型转换原则
TCHouse-X 仅支持有限的隐式类型转换。这种限制是为了防止因意外的转换行为而产生不可预期的结果。
禁止隐式转换(需要 CAST())
字符串与数值/布尔类型: TCHouse-X 不会在
STRING 类型与任何数值类型(如 INT, BIGINT 等)或 BOOLEAN 类型之间执行隐式转换。注意:
遇到此类转换需求时,请始终显式使用
CAST() 函数。允许隐式转换(自动提升)
数值类型之间的提升: TCHouse-X 会在数值类型之间,从“较小或精度较低”的类型向“较大或精度更高”的类型执行隐式转换。
示例:
SMALLINT 可以隐式转换为 BIGINT 或 FLOAT。降级限制: 相反地,从“较大或精度较高”的类型向“较小或精度较低”的类型转换,如将
DOUBLE 转换为 FLOAT,或将 INT 转换为 TINYINT,必须在查询中显式调用 CAST()。TCHouse-X 内置数据类型一览表
类型 | 范围/约束 | 描述及说明 |
TRUE 或 FALSE | TCHouse-X 兼容 MySQL 协议:布尔值 TRUE 和 FALSE 在查询结果中分别以数值 1 和 0 形式展示。 | |
[ -128, 127] | TCHouse-X 内表暂不支持 TINYINT 类型,建表时该类型将自动转换为 INT 类型。 | |
[ -32768, 32767] | TCHouse-X 内表暂不支持 SMALLINT 类型,建表时该类型将自动转换为 INT 类型。 | |
[ -2147483648, 2147483647] | | |
[ -9223372036854775808, 9223372036854775807] | | |
正数范围:[ 1.40129846432481707e-45 , 3.40282346638528860e+38]负数范围:[ -3.40282346638528860e+38, -1.40129846432481707e-45] | 单精度浮点数,6 到 9 位有效数字。 | |
正数范围: [ 4.94065645841246544e-324, 1.79769313486231570e+308]负数范围: [ -1.79769313486231570e+308, -4.94065645841246544e-324] | 双精度浮点数,15 到 17 位有效数字。 | |
[ -10^38 + 1, 10^38 − 1] | 高精度定点数。 - 精度 (M): 有效数字总数 [1, 27] - 小数位 (D): 小数位数字数量 [0, 9] - 约束:M >= D,整数位最多 18 位 | |
| | |
| | |
长度范围: 1-255 | 定长字符串,TCHouse-X 内表暂不支持 CHAR 类型,建表时该类型将自动转换为 STRING 类型。 | |
长度范围: 1-65535 | 定长字符串,TCHouse-X 内表暂不支持 VARCHAR 类型,建表时该类型将自动转换为 STRING 类型。 | |
最大支持 2 GB | 变长字符串,使用 UTF-8 编码存储。 | |
[ '0001-01-01', '9999-12-31'] | 仅包含日期信息。 | |
[ 0001-01-01, 9999-12-31] | 包含日期和时间(年、月、日、时、分、秒),包含本地时区信息。精度为微秒。 | |
[ 0001-01-01, 9999-12-31] | 包含日期和时间(年、月、日、时、分、秒),不包含本地时区信息。精度为微秒。 | |