Rails:Postgres JSONB“之间”查询[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我正在使用Rails 5 + Postgres。

我有一个名为data的Postgres JSONB列,其数据类似于:

{username: 'McGruff', timestamp: 123456789}

我想查询两个时间戳之间的数据,以获取所有时间戳都在某个范围内(例如,过去24小时)的记录子集。

使用下面的评论,答案是:

Model.where("(data->'timestamp')::int BETWEEN ? AND ?", start, end)

谢谢您的帮助!

ruby-on-rails postgresql ruby-on-rails-5
1个回答
0
投票

通过提供startend输入作为字符串来使用where子句。作为以jsonb列中的字符串格式存储的数据。

有点像下面:

Model.where((data->>'timestamp')::int between ? and ?, start, end)
© www.soinside.com 2019 - 2024. All rights reserved.