база данных содержит поля
start_date
и
finish_date
в формате
datetime
:
2020-12-01 00:00:00
2020-12-02 00:00:00
2020-12-03 00:00:00
в таблице в поле
learnings.finish_date
присутствуют несколько максимальных дат
05.12.2020
но запрос с одной датой (минимально ил максимальной) не отображает вообще никаких данных
с двумя датами в запросе - получаю не полные данные
$date1 = (new DateTime($_POST['date1']))->format('Y-m-d'); //на входе 05.12.2020 на выходе 2020-12-05
$date2 = (new DateTime($_POST['date2']))->format('Y-m-d');
if(empty($_POST['date2'])){
$date2 = $date1;
}
// $date2 = 2020-12-05
$org_id = $_POST['org'];
$stmt = $dbh->prepare("SELECT collaborators.fullname, learnings.state_id, orgs.name AS orgs_name, courses.name AS courses_name
FROM learnings
LEFT JOIN collaborators ON learnings.person_id = collaborators.id
LEFT JOIN orgs ON collaborators.org_id = orgs.id
LEFT JOIN courses ON learnings.course_id = courses.id
WHERE collaborators.org_id = :org_id
AND learnings.start_date BETWEEN :date1 AND :date2
AND learnings.finish_date BETWEEN :date1 AND :date2");
$stmt->execute(['org_id' => $org_id, 'date1' => $date1, 'date2' => $date2]);
Подскажите, как правильно?