在 bigquery 中使用 json_extract_scalar 时如何将 unix 时间戳转换为格式化日期
how do i convert unix time stamp to formatted date while using json_extract_scalar in bigquery
例如我有这个
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 语句中这样做怎么办。
有什么想法吗?
SELECT
MSEC_TO_TIMESTAMP(INTEGER(JSON_EXTRACT_SCALAR(jsonBlob, '$.CreatedDateTime'))) as CreatedDateTime
以上是旧版 SQL 看起来就像您在问题中使用的内容
忘记提及 - 对于 BigQuery Standard SQL ,同样会如下所示
SELECT
TIMESTAMP_MILLIS(CAST(JSON_EXTRACT_SCALAR(jsonBlob, '$.CreatedDateTime') AS INT64)) as CreatedDateTime
例如我有这个
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 语句中这样做怎么办。 有什么想法吗?
SELECT
MSEC_TO_TIMESTAMP(INTEGER(JSON_EXTRACT_SCALAR(jsonBlob, '$.CreatedDateTime'))) as CreatedDateTime
以上是旧版 SQL 看起来就像您在问题中使用的内容
忘记提及 - 对于 BigQuery Standard SQL ,同样会如下所示
SELECT
TIMESTAMP_MILLIS(CAST(JSON_EXTRACT_SCALAR(jsonBlob, '$.CreatedDateTime') AS INT64)) as CreatedDateTime