Mysql 按年度中的周查找ActiveRecord对象

Mysql 按年度中的周查找ActiveRecord对象,mysql,ruby-on-rails,ruby,sqlite,activerecord,Mysql,Ruby On Rails,Ruby,Sqlite,Activerecord,我有写有日期的报告。现在我想在一年中的某一周找到所有报告。我所拥有的是: class Model < ActiveRecord::Base attr_accessible :date def self.find_by_week(week, year) Model.all.find_all do |model| model.date.year == year and model.date.s­trftime("%­W").to_i == week end

我有写有日期的报告。现在我想在一年中的某一周找到所有报告。我所拥有的是:

class Model < ActiveRecord::Base
  attr_accessible :date

  def self.find_by_week(week, year)
    Model.all.find_all do |model|
      model.date.year == year and model.date.s­trftime("%­W").to_i == week
    end
  end  
end
类模型
但我担心,当该软件积累了数千份预期的报告时,该解决方案可能性能不佳。有更好的解决办法吗


如果重要的话,我在开发中使用SQLite3,但生产数据库将是MySQL。虽然我想要一个独立于数据库的解决方案,但如果可能…

您可以在日期范围内传递:

dates = Date.commercial(2012,40)..Date.commercial(2012,41)
Model.where(:date => dates)

Date.commercial
有更多可用参数-上述参数将为您提供周一到周一的时间。要设置更具体的日期/时间,请设置一个。

以便包括第二个星期一?我必须删除最后一天?我想它可以从10月1日星期一00:00:00到10月8日星期一00:00:00,这意味着第二个星期一不包括在内,但是,我没有用这么多。我建议设置一些测试。