Laravel 7: получение строк между двумя датами, где столбец datetime

#php #mysql #laravel

#php #mysql #laravel

Вопрос:

У меня возникли проблемы с созданием красноречивого запроса, в котором я могу воссоздать эту команду sql: Столбец date_created — это datetime .

 SELECT * FROM covidchecklist cc 
LEFT JOIN patient_appointment pa ON cc.appointment_id = pa.appointment_id 
LEFT JOIN users pat ON pa.user_id = pat.id 
WHERE DATE_FORMAT(cc.date_created,'%Y-%m-%d') BETWEEN '2021-01-27' AND '2021-01-27'
 

Что у меня есть прямо сейчас:

 CovidChecklist::
leftJoin('patient_appointment', 'covidchecklist.appointment_id', '=', 'patient_appointment.appointment_id')
        ->leftJoin('users as patient', 'patient_appointment.user_id', '=', 'patient.id')
        ->whereRaw(' DATE_FORMAT(covidchecklist.date_created,"%Y-%m-%d") BETWEEN '.'$this->date_from'.' AND '.'$this->date_to'.' ')
        ->select(
            *select stuff*
         )
        ->get();
 

Я использую whereRaw, так как не могу заставить это работать:

 ->whereBetween('covidchecklist.date_created', [$this->date_from, $this->date_to])
 

Ответ №1:

Попробуй это, приятель

 ->whereBetween(DB::raw('DATE_FORMAT(covidchecklist.date_created,"%Y-%m-%d")'), [$this->date_from, $this->date_to])