Google bigquery 尝试使用标准SQL BigQuery中的强制转换将十六进制时间戳转换为十进制

Google bigquery 尝试使用标准SQL BigQuery中的强制转换将十六进制时间戳转换为十进制,google-bigquery,bigquery-standard-sql,Google Bigquery,Bigquery Standard Sql,所以我试图从UUID中提取时间戳,比如 我在将十六进制字符串转换为十进制整数的步骤上遇到了困难。根据我的理解,这应该是可行的: 选择CAST(“1e78c9e03144170”作为INT64)作为十六进制到十二进制 我期待着答案:136865943201620000 但我得到了一个错误: 错误:无法将文字“1e78c9e03144170”强制转换为[1:13]处的INT64类型 下面是BigQuery标准SQL SELECT hex_val, CAST(CONCAT('0x', hex_val)

所以我试图从UUID中提取时间戳,比如

我在将十六进制字符串转换为十进制整数的步骤上遇到了困难。根据我的理解,这应该是可行的:

选择CAST(“1e78c9e03144170”作为INT64)作为十六进制到十二进制

我期待着答案:
136865943201620000

但我得到了一个错误:

错误:无法将文字“1e78c9e03144170”强制转换为[1:13]处的INT64类型


下面是BigQuery标准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


例如,您可以验证它

非常感谢。工作得很好。