Rails 5活动记录查询,其中日期范围与其他日期范围重叠

时间:2017-03-11 23:27:13

标签: ruby-on-rails datetime activerecord

我有一个planting_date_beginplanting_date_end的模型。我想要检索planting_date_begin..planting_date_end中任何日期与current_week的范围重叠的所有记录

例如: 如果planting_date_begin:3/5/2017和planting_date_end:3-12 / 2017 本周是3/26 / 2017-4 / 1/2017,它不包含在查询中。

如果planting_date_begin:2017年3月1日和planting_date_end:2017年4月15日将包括在内。

我设置了current_week范围:

today = Date.today
days_in_week = today.at_beginning_of_week..today.at_end_of_week

这种语法不对,但我想做类似的事情:

Planting.where((planting_date_begin..planting_date_end).overlaps?(days_in_week) )

处理此问题的简洁方法是什么?顺便说一句,我正在使用postgres,以防有不同的方法。

1 个答案:

答案 0 :(得分:5)

也许不是那么简洁,但我必须在当前的项目中做很多事情而且我的方法是......

 protected void btnSearch_Click1(object sender, EventArgs e)
        {
string Query = "Select * from tblstudent WHERE student_name = 'Adeel'";
 var getstudentattendance = DbAccess.GetResult(Query);

      studentattendancejson = JsonConvert.SerializeObject(getstudentattendance, Formatting.Indented);
}

这包括所有重叠..如果种植在范围之前开始并在范围之后结束,如果种植在范围内开始,如果种植在该范围内结束。