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

标签 sql mysql ruby-on-rails postgresql

我将以下内容用作 ActiveRecord 查找方法的一部分:

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

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

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

最佳答案

你可以做

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

应该跨不同的数据库工作

关于sql - 使用 Rails 抽象日期减法 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2236274/

相关文章:

php - 从表中排序数据,分配给变量然后从另一个文件调用

sql - 从 2 个表中获取修改后的结果

mysql - 如何在MYSQL中获取 'Calculate response time & average first response time on the basis of type with date filters'

php - 立即或在填写表格后将条目添加到数据库中

ruby-on-rails - 如何使用 rails 在我的应用程序 facebook 页面上自动发布帖子

ruby-on-rails - 从内存集合中删除项目

mysql - 如何设计一组具有动态属性的数据库表?

我的 SQL 查询中需要用 HTML 代码来格式化带有千位分隔符的表号,并使总计列值以粗体显示

mysql - has_many 与计数值的关联

ruby-on-rails - 如何在不关闭应用程序的情况下推送到 Heroku