我正在解析Google BigQuery表patents-public-data.uspto_peds.backfile
,其中的字段是JSON格式的字符串。
我可以将字段解析为SELECT
,只有其中一个值,如下所示:
PARSE_JSON(json_strong)['attribute'][0]['attribute2'] as aliasName
但是在WHERE子句中,我还想将返回值限制为日期在某个值之后的值,当我尝试时,似乎是合理的:
WHERE
EXTRACT(YEAR FROM DATE(PARSE_JSON(priorityClaimBag)['priorityClaim'][0]['filingDate'])) > 2018
我得到错误:
No matching signature for function DATE for argument types: JSON. Supported signatures: DATE(TIMESTAMP, [STRING]); DATE(DATETIME); DATE(INT64, INT64, INT64); DATE(DATE); DATE(STRING) at [28:23]
这实际上是一个具有有效日期时间的字符串字段。使用别名似乎也不起作用。
事实上,是否可以将此字符串计算为JSON,解析对象,然后以这种方式强制转换为DATE?
1条答案
按热度按时间qv7cva1a1#
请使用JSON_EXTRACT_SCALAR,如下例所示