我在通过SQLite3数据库运行的ActiveRecord模型上的'find'方法中查询日期的条件而挣扎。我的模型如下:ActiveRecord:在查询日期时使用'find'方法问题
Day:
failure_day: date
failure_count: integer
当我尝试查询日子里,我得到以下(只有伪代码):
Query: Days.all
Result: [{failure_day: 2010-04-14, failure_count: 1}]
Query: Days.find(:first, :conditions=>'failure_day > 2010-02-01')
Result: {failure_day: 2010-04-14, failure_count: 1}
Query: Days.find(:first, :conditions=>'failure_day = 2010-04-14')
Result: nil
Query: Days.find(:first, :conditions=>'failure_day < 2010-05-05')
Result: nil
什么我不明白的是为什么最后两个查询返回'零'。第一个查询(Days.all)证明我的数据库中有记录。第二个正确匹配'failure_day'的日期小于'failure_day',但是当尝试等于或小于它不起作用时。
任何想法?
好吧..看起来可行。如果我比较实际的日期对象(:conditions => [“failure_day =?”,my_date]),那么怎么办?我还需要DATE_FORMAT吗? – 2010-05-25 14:11:42