Запитване между дати или съответстващи периоди от време в laravel и eloquent

Създавам страница, която показва текущите поръчки за обслужване от текущата седмица. Мога успешно да направя заявка в базата данни за задачи, които се случват между две дати, но проблемът, пред който съм изправен, е следният.

Да кажем, че текущата седмица започва на 02/12 и завършва на 08/12 и имам поръчка за услуга, която продължава от 01/12 до 10/12, надхвърля диапазона от дати на текущата седмица с един ден в началната дата и два дни от крайната дата.

Ако успях да се изясня, как да направя заявка в базата данни, за да извлека поръчки за услуги, които се случват през текущата седмица, но началната и крайната дата са извън обхвата на текущата седмица?

Ето кода, който използвам за заявка в базата данни за SOs между датите:

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

Благодаря за вашата помощ!


person Marcos Curvello    schedule 06.12.2018    source източник


Отговори (2)


опитай това,

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

Опитайте тази:

->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();
person Vishal Sancheti    schedule 07.12.2018