【发布时间】:2020-02-14 21:57:22
【问题描述】:
使用 Postgres 11.2.9 (ubuntu),
在我的数据库中,我有一个 jsonb 字段,其中包含如下所示的值:
[1618171589133, 1618171589245, 1618171589689]
我想检索第一个元素低于特定值的行。我试过这个:
SELECT * FROM user.times WHERE time ->> 0 < 1618171589133
但我收到以下错误:ERROR: operator does not exist: text = bigint
我应该以某种方式将时间值转换为数值吗?我试过time ->> 0::numeric,但实际上我不知道该怎么做。
【问题讨论】:
-
你试过
time -> 0 < 1618171589133吗?看这里postgresql.org/docs/9.5/functions-json.html 使它看起来像->>故意返回文本而不是数值 -
@GSP 公平点,但我认为我仍然必须将其转换为 bigint,
time -> 0 < 1618171589133返回错误operator does not exist: jsonb <= bigint
标签: postgresql jsonb