Google bigquery 尝试使用标准SQL BigQuery中的强制转换将十六进制时间戳转换为十进制
所以我试图从UUID中提取时间戳,比如 我在将十六进制字符串转换为十进制整数的步骤上遇到了困难。根据我的理解,这应该是可行的: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)
选择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
例如,您可以验证它非常感谢。工作得很好。