gpt4 book ai didi

sql - 解析日期 : Invalid result from parsing function BigQuery/Standard SQL

转载 作者:行者123 更新时间:2023-12-03 16:51:24 25 4
gpt4 key购买 nike

我在 BigQuery(标准 SQL)中有以下代码:

SAFE_CAST (PARSE_DATE('%Y-%m-%d',JSON_EXTRACT_SCALAR(g.p_dataforanalytics,'$.birthday') ) as string)

这失败的原因是:

Invalid result from parsing function



问题是我无法控制我在 g.p_dataforanalytics 中获得的数据其中一些是纯粹的垃圾,格式不正确,有时甚至不是合理的值(value)。
有没有办法定义如果 PARSE_DATE()失败它会返回NULL而不是抛出查询?

基本上我正在寻找任何编程语言中的 try/catch 之类的东西?

最佳答案

使用 SAFE.解析的前缀:

SAFE.PARSE_DATE('%Y-%m-%d', JSON_EXTRACT_SCALAR(g.p_dataforanalytics, '$.birthday') )

我没有看到将其转换回字符串的实用程序,除非您想要这样的解决方案:
COALESCE(FORMAT('%Y-%m-%d',
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d', JSON_EXTRACT_SCALAR(g.p_dataforanalytics, '$.birthday'),
SAFE.PARSE_DATE('%m/%d/%Y', JSON_EXTRACT_SCALAR(g.p_dataforanalytics, '$.birthday')
)

), JSON_EXTRACT_SCALAR(g.p_dataforanalytics, '$.birthday'
)

也就是说,如果代码测试了不同的日期格式,则选择一种,将其转回 YYYY-MM-DD 格式。而且,如果所有格式都不起作用,则保留原始值。

关于sql - 解析日期 : Invalid result from parsing function BigQuery/Standard SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54534251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com