尝试在标准 SQL BigQuery 中使用 CAST 将十六进制时间戳转换为十进制时间戳



所以我正在尝试从 UUID 中提取时间戳,如下所示

我卡在将十六进制字符串转换为十进制整数的步骤上。据我了解,这应该有效:

SELECT CAST("1e78c9e03144170" AS INT64) as hex_to_dec

我期待答案:136865943201620000

但是我得到错误:

错误:无法将文本"1e78c9e03144170"转换为在 [1:13] 处键入 INT64

下面是 BigQuery Standard SQL

SELECT hex_val, CAST(CONCAT('0x', hex_val) AS INT64) AS hex_to_dec

你可以用下面测试它

#standardSQL
WITH `project.dataset.table` AS (
SELECT '1e78c9e03144170' hex_val
)
SELECT hex_val, CAST(CONCAT('0x', hex_val) AS INT64) AS hex_to_dec
FROM `project.dataset.table`   

结果是

Row     hex_val             hex_to_dec   
1       1e78c9e03144170     137232923942470000    

注意:您的预期结果136865943201620000不正确。正确的一个是137232923942470000
您可以验证它,例如here

最新更新