Ruby日期比较

时间:2011-06-27 17:55:18

标签: ruby-on-rails ruby symbols

@student = Student.find(:all, :conditions => {:school_id => school.id,:created_at => Date.today })
我需要编写这个ruby查询来检索学校中学生创建日期应该是同一天的所有学生 但是这给了nil值。当我使用“if”条件时,我可以使用if created_at.to_date == Date.today.to_date 所以我的问题是如何将日期时间格式化符号(:created_at)转换为日期格式。 (表示,这里Student.find(..,:created_at.to_date => Date.today.to_date)是不可能的,替代方式是什么)

1 个答案:

答案 0 :(得分:5)

部分技巧是created_at是时间值,而不是日期值。 this StackOverflow answer to a similar question推荐的一种解决此问题的方法是将created_at值转换为查询期间的日期:

school.students.all(:conditions => ["DATE(created_at) = DATE(?)", Time.now])

(请注意,我重构了查询以使用学校的has_many :students关系。)