在laravel和雄辩的日期或匹配的日期范围之间进行查询

时间:2018-12-06 17:07:02

标签: laravel laravel-5 eloquent

我正在创建一个页面,显示当前一周的正在进行的服务订单。我可以成功查询两个日期之间发生的任务的数据库,但这是我面临的问题。

假设本周开始于02/12,结束于08/12,我的服务订单从01/12到10/12,超过了当前周日期范围的一天开始日期和结束日期的两天。

如果我能弄清楚自己的意思,该如何查询数据库以检索当前一周内发生的服务订单,但开始日期和结束日期超出了本周范围?

这里有我用来在日期之间查询数据库SO的代码:

->whereBetween("service_orders.initial_date", array($initialDate, $finalDate))
->orWhereBetween("service_orders.final_date", array($initialDate, $finalDate))
->where("service_orders.completed_date", "=", null)
->get();

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

尝试这个

->where("service_orders.initial_date", '<', $finalDate)
->where("service_orders.final_date", '>', $initialDate)
->where("service_orders.completed_date", "=", null)
->get();

答案 1 :(得分:0)

尝试一下:

->where(function($q) use($initialDate, $finalDate){
   $q->whereBetween("service_orders.initial_date", array($initialDate, $finalDate))
     ->orWhereBetween("service_orders.final_date", array($initialDate, $finalDate));
})
->where("service_orders.completed_date", "=", null)
->get();