【问题标题】:How to parse datetime data in a json string in BigQuery如何在 BigQuery 中解析 json 字符串中的日期时间数据
【发布时间】:2022-06-15 18:19:35
【问题描述】:

我正在尝试解析 Bigquery 中 json 字符串中的日期时间列。到目前为止,BQ 只返回年份部分(作为数字)。比如这个脚本

select json_extract(json_data, '$.application_date') from (select '{"user_id":"10000561","application_date":2020-08-03 12:55:21}' as json_data)

返回 2020 而不是期望的结果 2020-08-03 12:55:21。

请帮助我。我该如何解决这个问题?

【问题讨论】:

  • 您的 json 数据似乎无效。你会用{"user_id":"10000561","application_date":"2020-08-03 12:55:21"} 再试一次吗?此外,您必须使用JSON_VALUE() 而不是json_extract。

标签: json google-bigquery


【解决方案1】:

我会在返回的字符串上使用json_extract_scalor(),然后使用parse_datetime()。

用你的例子:

select parse_datetime("%F %T", json_extract_scalar(json_data, '$.application_date')) 
from (
   select '{"user_id":"10000561","application_date":"2020-08-03 12:55:21"}' 
   as json_data
)

【讨论】:

    【解决方案2】:

    根据您的要求,json_value 可用于从 json 字符串中提取日期和时间。您可以尝试以下代码以获得预期的输出。

    代码

    select parse_datetime("%F %T", json_value(json_data, '$.application_date')) as date_and_time
    from (
      select '{"user_id":"10000561","application_date":"2020-08-03 12:55:21"}'
      as json_data
    )
    

    输出

    【讨论】:

      猜你喜欢
      • 2019-02-12
      • 1970-01-01
      • 2011-04-16
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多