腾讯云数据仓库 TCHouse-X BIGINT

BIGINT 是一种 8 字节整数数据类型,用于 CREATE TABLE 和 ALTER TABLE 语句。

相关产品
腾讯云数据仓库 TCHouse-X 产品页,含版本规格、价格与购买入口。

一、语法

在 CREATE TABLE 语句的列定义中:

column_name BIGINT

二、范围

·取值范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。

·注意:TCHouse-X 不支持无符号(UNSIGNED)子类型。

三、隐式转换

TCHouse-X 会自动将 BIGINT 转换为浮点类型(FLOAT 或 DOUBLE)。

四、显式转换

·转换为 TINYINT、SMALLINT、INT、STRING 或 TIMESTAMP 必须使用 CAST()。

·TIMESTAMP/TIMESTAMPTZ 转换规则:将整数值 N 转换为 TIMESTAMP/TIMESTAMPTZ时,系统会生成一个以 Unix 纪元(1970-01-01 00:00:00 UTC)为基准、增加 N 秒后的时间戳。在查询展示时,该值会自动转换为当前系统时区对应的本地时间。

·TIMESTAMPNTZ 转换规则:将整数值 N 转换为 TIMESTAMPNTZ时,系统会生成一个以 Unix 纪元(1970-01-01 00:00:00 UTC)为基准、增加 N 秒后的时间戳。

五、使用说明与建议

·选型权衡:BIGINT 在声明列时非常方便,因为它可以容纳任何整数值,且在 INSERT 时会自动进行类型提升。然而,它是占用空间最大的整数类型(磁盘和内存均占 8 字节)。过度使用会导致查询效率下降,扩展性变差。

·最佳实践:优先使用能容纳输入值的最小整数类型。仅在必要时使用 CAST() 转换为大类型。

·溢出处理:如果数值超过了 BIGINT 的范围,请使用具有足够精度的 DECIMAL 类型。

·NULL 处理:将任何非数字值强制转换为此类型将产生 NULL。

·分区 (Partitioning):优先使用此类型作为分区键列。相比字符串形式,Impala 处理数值类型的效率更高。

六、示例

— 创建包含 BIGINT 的表CREATE TABLE t1 (x BIGINT);– 显式转换示例SELECT CAST(1000 AS BIGINT);

赞 (0)
上一篇 4天前
下一篇 4天前