这个问题在这里已有答案:
我正在使用Rails 5 + Postgres。
我有一个名为data
的Postgres JSONB列,其数据类似于:
{username: 'McGruff', timestamp: 123456789}
我想查询两个时间戳之间的数据,以获取所有时间戳都在某个范围内(例如,过去24小时)的记录子集。
使用下面的评论,答案是:
Model.where("(data->'timestamp')::int BETWEEN ? AND ?", start, end)
谢谢您的帮助!
通过提供start
和end
输入作为字符串来使用where子句。作为以jsonb列中的字符串格式存储的数据。
有点像下面:
Model.where((data->>'timestamp')::int between ? and ?, start, end)