1

如何使用 Rails 和 ActiveRecord仅比较时间值?例如,查找下午 3:00 之后创建的所有行?

我尝试使用Time.parse,但是他们似乎期望完整的 DateTime 值,而不是 Time (晚上 11:00 等)。

我基本上是在寻找两个日期之间存在的所有行,然后是两次之间。例如,在“3:00PM”之后创建的“21/01/2012”和“23/02/2012”之间创建的所有行。日期部分似乎工作正常,但是如果没有简单的 SQL,我似乎无法让时间部分工作。

4

2 回答 2

1

你可以这样做:

User.where("created_at > ? and created_at < ?", Time.now - 3.days, Time.now)
于 2013-01-18T09:50:07.703 回答
0

据我了解,您正在应用一个函数来从 SQL 中的 datetime 属性中提取时间。像select HOUR(created_at)...

ActiveRecord 无法做到这一点,但是 gem squeel在 Ruby 中做到了。

Person.select{coalesce(name, '<no name given>')}

但是没有什么比用纯 SQL 做的根本不同。

于 2013-01-18T12:27:33.253 回答