查找日期范围之间的记录

pat*_*gan 3 ruby activerecord ruby-on-rails

我正在尝试查找特定日期的开始和结束日期范围的记录.日期是随机的,并且:start_date和:end_date是价格实体的属性.

date = Time.now
record_i_want = Price.where(date => :start_date .. :end_date)
Run Code Online (Sandbox Code Playgroud)

谢谢.

San*_*osh 9

你可以干脆做

Price.where(:date => start_date..end_date)
Run Code Online (Sandbox Code Playgroud)

这将产生以下结果SQL(开始和结束日期 - '2014-03-27','2014-03-28')

SELECT `prices`.* FROM `prices` WHERE (`prices`.`date` BETWEEN '2014-03-27' AND '2014-03-28')
Run Code Online (Sandbox Code Playgroud)

编辑: 意识到这是您正在寻找的查询.谢谢,Coenwulf指出了它

Price.where(['start_date < ? AND end_date > ?', date, date])
Run Code Online (Sandbox Code Playgroud)