Это зависит от того, нужно ли вам следить за тем, чтобы весь диапазон дат, введенный пользователем, охватывался графиком в вашей таблице.Если вам это нужно, то вы должны убедиться, что время начала и окончания пользователя находятся между значениями в базе данных.Следовательно:
select * from graph_table t
where @user_start_time between t.graph_range_start and t.graph_range_end
and @user_end_time between t.graph_range_start and t.graph_range_end
limit 1;
Вам нужно будет решить, как обрабатывать возвращающиеся несколько строк (я только что использовал LIMIT 1 здесь).
Если вы хотите вернуть какие-либо графикикоторые охватывают либо время начала, либо время окончания пользователя, затем измените 'и' в запросе на 'или', следовательно:
select * from graph_table t
where (@user_start_time between t.graph_range_start and t.graph_range_end)
or (@user_end_time between t.graph_range_start and t.graph_range_end)
limit 1;
Опять же, вам придется решить, как вы хотите обработатьнесколько результатов здесь.