You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BigQuery中设置并使用INT64的所有位(第64位)

在BigQuery中使用INT64的所有位

我想了解如何在BigQuery中使用INT64的所有位。以下代码可以正常运行:

DECLARE myBits INT64 DEFAULT 0x0000000000000001;

但下面的代码运行失败,报错信息如下:

DECLARE myBits INT64 DEFAULT 0x8000000000000000;

查询错误:无效的十六进制整数字面量:0x8000000000000000

该十六进制值在MS SQL Server中可正常使用,但在BigQuery中不行。我尝试过使用BYTES类型:

DECLARE myBits BYTES(16) DEFAULT FROM_HEX('8000000000000000');

但将其用于位运算(&, |)时,结果不符合预期。根据文档,应使用INT64类型——如何赋值才能使用所有位?

编辑 - 解决方案

经过进一步搜索和测试,我找到了可行的解决方案:

/* 这个INT64数值仅第64位为1,其余位都是0 */
DECLARE e INT64 DEFAULT -9223372036854775808;

我也测试了Roar S提供的方法,以下代码可正常运行:

/* 0x1仅最右侧位为1,
 * 将这个位左移63位,
 * 结果和上面的数值一致
 */
DECLARE a INT64 DEFAULT (0x1 << 63);

内容的提问来源于stack exchange,提问作者Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 22:13:24