Rails:Postgres JSONB“之间”查询

时间:2019-04-24 05:14:06

标签: ruby-on-rails postgresql ruby-on-rails-5

我正在使用Rails 5 + Postgres。

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

{username: 'McGruff', timestamp: 123456789}

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

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

如下所示:

Model.where((data->>'timestamp')::int between ? and ?, start, end)