【发布时间】:2011-03-07 18:15:26
【问题描述】:
我想要执行以下操作:查找 Time.now 介于 article.due_date 和 article.due_date - 8.hours 之间的所有文章。我在试图把它做好时遇到了很多麻烦。任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
您遇到了什么问题?
标签: ruby-on-rails ruby-on-rails-3 postgresql named-scope
我想要执行以下操作:查找 Time.now 介于 article.due_date 和 article.due_date - 8.hours 之间的所有文章。我在试图把它做好时遇到了很多麻烦。任何帮助将不胜感激。
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 postgresql named-scope
谁说代数一文不值?
您在问题中陈述的两个条件。
T <= DUE
T >= DUE - 8h
这两个条件都一样。
DUE >= T
DUE <= T + 8h
您现在可以将其应用到查询和/或范围,而无需在数据库中进行日期时间操练。
named_scope :near_due, lambda {{ :conditions => ["due_date >= ? AND due_date <= ?", Time.now, Time.now + 8.hours] }}
【讨论】:
Time.now 只会在你的模型第一次被缓存时被评估。