Lou*_*too 4 postgresql activerecord ruby-on-rails ruby-on-rails-3 rails-activerecord
我datetime在User/ userstable中有两列:created_at和birthdate.我想找到生日日期不到13年的用户.
等效的Rails if语句将是((created_at - birthdate) < 13.years)
如何将其转换为ActiveRecord查询(一个可以在PostgreSQL上运行的查询)?这甚至是可能的,还是我必须手动迭代所有记录?
mu *_*ort 12
最简单的方法是使用间隔,然后它几乎是Rails版本的直接音译:
User.where(%q{created_at - birthdate < interval '13 years'})
Run Code Online (Sandbox Code Playgroud)
两个时间戳(或时间戳和日期)之间的差异是一个间隔,因此您只需要在比较的右侧使用适当的值.
| 归档时间: |
|
| 查看次数: |
4782 次 |
| 最近记录: |