【发布时间】:2021-05-08 14:35:20
【问题描述】:
我正在尝试获取表中的一列,该列的值是一个包含日期的 json 字符串。
SELECT DISTINCT
contact_date,
JSON_value(contact_date, '$.value') as date1
FROM arcus.encounter
代码产生这个错误
错误:对于参数类型:DATETIME、STRING 的函数 JSON_VALUE 没有匹配的签名。支持的签名:JSON_VALUE(STRING, [STRING]) at [3:3]
SELECT DISTINCT
contact_date,
FROM arcus.encounter
LIMIT 5
{
"value": "2014-11-05T00:00:00"
}
【问题讨论】:
-
根据报错信息,该列已经是日期了。
-
您正在处理的表的架构是什么? (更准确地说是 arcus.encounter contact_date)。 JSON_VALUE 函数对 JSON 的 STRING 表示进行操作,您的列似乎不符合该要求。
-
@Cylldby
contact_date列包含 JSON 字符串而不是字符串。问题是如何将该 JSON 字符串中的值转换为日期格式。说尝试过的方法不起作用,忽略了一点,即如果它确实起作用,那么向 SO 发布问题就没有意义了。 -
@HarlanNelson 实际上我的问题不是很准确。我的观点是我们需要更多关于如何构建表格的信息。当我尝试使用 SELECT JSON_VALUE("{\"value\": \"2014-11-05T00:00:00\"}", '$.value') AS 结果重现问题时......我的没有错误边..
标签: sql json google-bigquery