【问题标题】:BigQuery - Failed to parse input stringBigQuery - 无法解析输入字符串
【发布时间】:2021-02-06 02:41:29
【问题描述】:

我已从 JSON 字段中提取字符串,格式为"2020-07-0217:39:02-04:00",存储在名为time_string 的列中。

当我使用以下函数 PARSE_TIMESTAMP("%Y-%m-%d%H:%M:%S%Ez", time_string) 时,我收到所有行的“无法解析输入字符串”错误。

如果我直接粘贴来自time_string 的日期作为解析函数的输入,我会得到一个输出。

查询:SELECT PARSE_TIMESTAMP("%Y-%m-%d%H:%M:%S%Ez", "2020-07-0217:39:02-04:00")

输出:2020-07-02 21:39:02 UTC

我知道这里有多个帖子存在类似问题。通读它们,但无法弄清楚这一点。

【问题讨论】:

    标签: google-bigquery timestamp


    【解决方案1】:

    我看到的唯一解释是 - 您的某些 time_strings 的格式与您预期的不同

    要查找,请在下面运行

    #standardSQL
    select time_string
    from `project.dataset.table`
    where SAFE.PARSE_TIMESTAMP("%Y-%m-%d%H:%M:%S%Ez", time_string) is null   
    

    更新

    看起来你的一些值用引号括起来

    所以用下面代替

    select PARSE_TIMESTAMP("%Y-%m-%d%H:%M:%S%Ez", trim(time_string, '"'))
    

    【讨论】:

    • 我运行了您的查询,我将表中的所有行作为输出。 ````PARSE_TIMESTAMP``` 函数似乎不适用于任何值。 screenshot
    • 请举例说明至少出现了一个time_string 值!
    • Sample time_string value: "2020-09-2222:36:27-07:00" 就像我在最初的问题中所说的那样,如果我直接在 parse_timestamp 函数中输入这个我'我得到了我正在寻找的输出。
    • 您是说您运行了我在答案中提供的查询并且值2020-09-2222:36:27-07:00 出来了吗?请确认
    • 所以,我检查了您在评论中提供的屏幕截图(我最初错过了)-所以,您没有看到出来的值具有不同的格式-也就是说-它们都有开头和结尾的额外引号 - 所以请改用PARSE_TIMESTAMP("%Y-%m-%d%H:%M:%S%Ez", trim(time_string, '"'))
    猜你喜欢
    • 2021-09-19
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 2018-11-19
    相关资源
    最近更新 更多