在 postgres/jsonb 中将字符串值转换或转换为日期

any*_*acy 2 postgresql jsonb

我正在尝试编写一个需要使用函数的查询MAX()。数据存储在jsonb如下列中: {"created_at": "2012-08-03T02:32:44", "company": "apple"}

我想MAX()在“created_at”键上运行该函数。

SELECT MAX(data -> 'created_at) FROM ... 不起作用。

SELECT MAX(cast(data -> 'created_at) as DATE) FROM ... 也不起作用。

小智 8

您可以使用date(colName ->> 'created_at')

您也可以在 WHERE 条件中使用

date(colName ->> 'created_at') BETWEEN '2021-01-01' and '2022-01-01'
Run Code Online (Sandbox Code Playgroud)


any*_*acy 6

我随机尝试了另一次尝试并且成功了

data ->> 'created_at' AS DATE工作因为->>返回文本