Проверьте время между двумя столбцами, не работающими в Php mysql

#php #mysql #sql

Вопрос:

У меня есть таблица «merchant_slots», и я хочу проверить, собирается ли какой-либо пользователь вставить существующий временной интервал или нет, означает, что пользователь не должен вводить существующий временной интервал (не должен существовать между предыдущими «start_time» и «end_time») Так как же я могу проверить ? Вот моя таблица «merchant_slots»

 id      day     merchantId          start_time          end_time                
1       1           1                   09:00               10:00
2       2           1                   12:00               14:00
3       3           1                   18:00               20:00
 

Я попытался использовать следующий код, но он не работает

 SELECT *
FROM merchant_slots
WHERE '08:00' > start_time AND end_time < '12:00'
 

Комментарии:

1. Для проверки перекрывающихся диапазонов времени сравните start1 с end2 и start2 с end1. Если начало меньше конца в каждой паре, то диапазоны перекрываются.

2. @Akina: можете ли вы написать запрос, чтобы я мог проверить и реализовать его на своей стороне

3. ’08:00′ < время окончания amp;amp; ’12:00′ > время начала

4. @Erik: Вы можете написать «точный» запрос

5. Какую часть этой концепции вы не понимаете? Я бы предпочел помочь вам в этом, чтобы вы действительно чему-то научились.

Ответ №1:

Я предполагаю, что вы хотите исключить любое перекрытие с существующими строками. Если это так, вы можете найти совпадения, используя:

 SELECT *
FROM merchant_slots
WHERE end_time > '08:00' AND start_time AND < '12:00'
 

Если это не возвращает строк, то временной интервал вообще не используется.