使用Rails抽象日期减法SQL查询

时间:2010-02-10 11:07:29

标签: sql mysql ruby-on-rails postgresql

我正在使用以下内容作为ActiveRecord查找方法的一部分:

:conditions => "created_at > date_sub(now(), INTERVAL 7 DAY)"

这在我正在使用MySQL的开发服务器上正常工作,但我正在部署到没有date_sub函数的postgreSQL。忽略了我使用两个不同数据库的事实,Rails是否内置了任何内容来抽象这个日期减法操作?

如果没有,Rails中是否有推荐的构造用于指定在遇到不同的DB时应该运行的两个不同的SQL查询?

1 个答案:

答案 0 :(得分:1)

你可以做到

Object.find(:all, :conditions => ["created_at > ?", 7.days.ago])
#=> SELECT * FROM "objects" WHERE (created_at > '2010-02-03 12:06:19.352398') 

应该适用于不同的dbs