如何使用Rails和ActiveRecord比较仅时间值?例如,查找在下午3:00之后创建的所有行?
我尝试使用Time.parse
,但他们似乎期待完整的DateTime值,而不是时间(晚上11点等)。
我基本上是在寻找两个日期之间存在的所有行,然后是两次之间。例如,在“3:00 PM”之后创建的“21/01/2012”和“23/02/2012”之间创建的所有行。日期部分似乎工作正常,但是如果没有普通的SQL,我似乎无法让时间部分工作。
答案 0 :(得分:1)
您可以这样做:
User.where("created_at > ? and created_at < ?", Time.now - 3.days, Time.now)
答案 1 :(得分:0)
据我所知,你正在应用一个函数来从SQL中的datetime属性中提取时间。像select HOUR(created_at)
...
ActiveRecord不能这样做,但是gem squeel在Ruby中做到了。
Person.select{coalesce(name, '<no name given>')}
但是在普通的SQL中没有什么比这更好的了。