假设我有一个存储float
值
我想选择utc_time值近似为1402630856
我可以接受值x,其中abs(x-1402630856)< 3
所以我应该得到前5条记录,
Arel或Active Record应该怎么办?感谢
+----+------------------+
| id | utc_time |
+----+------------------+
| | 1402630854.99146 |
| | 1402630856.11391 |
| | 1402630856.13342 |
| | 1402630856.13576 |
| | 1402630857.02345 |
| | 1402630876.03702 |
| | 1402630954.7856 |
| | 1402630954.78688 |
| | 1402630954.78814 |
| | 1402630966.06754 |
+----+------------------+
答案 0 :(得分:2)
这应该在ActiveRecord中起作用:
x = 1402630856
Model.where('utc_time - ? between 3 and -3', x)
您也可以使用:
Model.where(utc_time: (x - 3)..(x + 3)