我正在创建一个页面,显示当前一周的正在进行的服务订单。我可以成功查询两个日期之间发生的任务的数据库,但这是我面临的问题。
假设本周开始于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();
感谢您的帮助!
答案 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();