【问题标题】:Problem with dates in Postgresql and RailsPostgresql 和 Rails 中的日期问题
【发布时间】:2011-03-07 18:15:26
【问题描述】:

我想要执行以下操作:查找 Time.now 介于 article.due_datearticle.due_date - 8.hours 之间的所有文章。我在试图把它做好时遇到了很多麻烦。任何帮助将不胜感激。

谢谢!

【问题讨论】:

  • 您遇到了什么问题?

标签: ruby-on-rails ruby-on-rails-3 postgresql named-scope


【解决方案1】:

谁说代数一文不值?

您在问题中陈述的两个条件。

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] }}

【讨论】:

  • 哈。我自己解决了这个问题。不得不重新查找不平等的规则。除非我们打发时间,否则可能不需要 lambda,这确实是个好主意。不过,您的工作有一个公认的答案:)
  • 你肯定需要 lambda,否则 Time.now 只会在你的模型第一次被缓存时被评估。
猜你喜欢
  • 2011-02-03
  • 1970-01-01
  • 1970-01-01
  • 2016-12-14
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多