【发布时间】:2011-07-10 05:01:52
【问题描述】:
我使用此查询来获取与“start_date”和“end_date”之间的时间段重叠的对象,此外,我想获取日期为end的对象开始日期,对象开始日期结束。
我用
where("(start_date, end_date) overlaps (date ?, date ?), start_date, end_date"
但对象有日期或>=end_date是不得到。
这种“重叠”只获取具有日期start_date的对象,而不是“=”。
例如,start_date='2011/2/1',end_date='2011/3/31'。对象的日期结束于“2011/2/1”或开始于“2011/3/31”将不会被获取,只有“2011/2/1”和“2011/3/31”之间的日期会被获取。如何包含保存日期在 start_date 结束并在 end_date 开始的对象?
----------编辑---------- --------
我尝试使用:
where("(start_date, end_date) overlaps (date ?, date ?), start_date-1.day, end_date+1.day"
解决这个问题,但是当我像上面那样做时,如果 start_date='2011/2/1', end_date='2011/3/31',那么对象持有 '2011/1/31' 也返回这是应该不应该得到。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3