1

例如我有这个

SELECT  
JSON_EXTRACT_SCALAR(jsonBlob, '$.userName') as userName,
JSON_EXTRACT_SCALAR(jsonBlob, '$.Id') as id,
JSON_EXTRACT_SCALAR(jsonBlob, '$.CreatedDateTime') as CreatedDateTime,
from dataset.tableName

这给了我一个结果,但 CreatedDateTime 字段是 unix 时间戳,我想以 2018-02-01 17:11:43 格式获取它。我知道我可以使用

SELECT MSEC_TO_TIMESTAMP(CreatedDateTime) as CreatedDateTime 

稍后转换它,但是如果我想在上面的 select 语句中执行此操作。任何想法?

4

1 回答 1

3
SELECT 
  MSEC_TO_TIMESTAMP(INTEGER(JSON_EXTRACT_SCALAR(jsonBlob, '$.CreatedDateTime'))) as CreatedDateTime   

以上是针对旧版 SQL 的,看起来就像您在问题中使用的那样

忘了提 - 对于 BigQuery 标准 SQL,如下所示

SELECT 
  TIMESTAMP_MILLIS(CAST(JSON_EXTRACT_SCALAR(jsonBlob, '$.CreatedDateTime') AS INT64)) as CreatedDateTime   
于 2018-03-01T16:54:11.513 回答