Mysql 写这个日期范围的更好方法是什么?

Mysql 写这个日期范围的更好方法是什么?,mysql,ruby-on-rails,ruby,scope,Mysql,Ruby On Rails,Ruby,Scope,我有选择班次的余地: scope :by_date, lambda { |date| where "end_date BETWEEN ? AND ? OR start_date BETWEEN ? AND ?", date.beginning_of_day, date.end_of_day, date.beginning_of_day, date.end_of_day } 这样做更干净吗?这个怎么样: scope :by_date, lambda { |date| where("end

我有选择班次的余地:

scope :by_date, lambda { |date|
  where "end_date BETWEEN ? AND ? OR start_date BETWEEN ? AND ?", date.beginning_of_day, date.end_of_day, date.beginning_of_day, date.end_of_day
}
这样做更干净吗?

这个怎么样:

scope :by_date, lambda { |date|
  where("end_date BETWEEN :beginning AND :end OR start_date BETWEEN :beginning AND :end",
    beginning: date.beginning_of_day, end: date.end_of_day)
}
这个怎么样:

scope :by_date, lambda { |date|
  where("end_date BETWEEN :beginning AND :end OR start_date BETWEEN :beginning AND :end",
    beginning: date.beginning_of_day, end: date.end_of_day)
}

您应该将其更改为
where([“日期(开始日期)=:日期或日期(结束日期)=:日期”,日期:日期。截止日期])
您应该将其更改为
where([“日期(开始日期)=:日期或日期(结束日期)=:日期”,日期:日期。截止日期])