【发布时间】:2016-10-05 07:43:08
【问题描述】:
我正在尝试编写一个需要使用函数MAX() 的查询。数据存储在jsonb 列中,例如:
{"created_at": "2012-08-03T02:32:44", "company": "apple"}。
我想在“created_at”键上运行MAX() 函数。
SELECT MAX(data -> 'created_at) FROM ... 不起作用。
SELECT MAX(cast(data -> 'created_at) as DATE) FROM ... 也不行。
【问题讨论】:
-
->只返回json。您是否尝试过返回text的->>? -
是的,我刚刚尝试了一下,它确实有效。反正谢谢
-
好吧,显然它不起作用。我没有收到错误,但结果是错误的。 min() 和 max() 总是返回相同的消息
-
当投射到
date时,您正在丢掉时间部分。max(cat(data ->>'created_at' as timestamp))应该可以工作:sqlfiddle.com/#!15/9eecb7db59d16c80417c72d1e1f4fbf1/9025 -
单步执行。确保你正在提取你想要的东西。然后确保你正确地投射它。确保您将日期、时间戳等传递给
max()。
标签: postgresql jsonb