Я хочу отобразить все записи из таблицы, в которую пользователь ввел время начала и
время окончания лежит между столбцом базы данных start_time и end_time. Я использовал между, но это не дает надлежащих результатов. Строки выбираются, только если мои start_time или end_time соответствуют значениям базы данных. Например, только если я введу 07:00:00 или 21:00:00 в поле времени начала или окончания времени соответственно.
Структура базы данных:
id int(11) Autoincrement
start_time datetime NULL
end_time datetime NULL
Данные базы данных:
Start_time end_time
2019-07-04 07:00:00 2019-07-04 21:00:00
SQL-запрос:
SELECT *
FROM `hours`
WHERE TIME(start_time) BETWEEN "07:15:00" and "20:00:00"
AND TIME(end_time) BETWEEN "07:15:00" and "20:00:00"
Запрос Codeigniter:
$this->db->where('TIME(start_time) BETWEEN "'. date('H:i:s',strtotime($start_time)). '" and "'. date('H:i:s',strtotime($end_time)).'"');
$this->db->where('TIME(end_time) BETWEEN "'. date('H:i:s',strtotime($start_time)). '" and "'. date('H:i:s',strtotime($end_time)).'"');
ссылка: http://sqlfiddle.com/#!9/958b05/6