A możesz powiedzieć, dlaczego zdecydowałeś się rozdzielić czas wyjazdu i dotarcia do cela na datę i godzinę, zamiast trzymać to razem (co chyba by ułatwiło potem operowanie na przedziałach czasowych w MySQL?
No i wyjaśnij, co dla Ciebie oznacza pojęcie “termin” (“w wyszukiwanym terminie”)? Czy to jest przedział czasowy (<początek;koniec>), czy konkretna data i czas (z gradacją 5 minut - tak zasugerowałeś w pytaniu)?
Pierwsze pytanie dlaczego datę i godzinę rozbiłes na dwa pola, a nie wykorzystałeś jednego pola typu DATETIME?
Strasznie przez to utrudniłeś sobie pracę…
Na dodatek jak już przechowujesz samą datę, to też jest do tego pola odpowiedni typ DATE, który natywnie wspiera mysql i łatwo można operować zapytaniami do bazy operając się właśnie o te typy. Naucz się wykorzystywać mechanizmy wbudowane w mysql… bo przecież od tego są.
Nie zwraca ci go ponieważ: 2014-07-30 14:55:00 <= 2014-07-30 15:15:00 jest true, natomiast 2014-07-30 15:15:00 >= 2014-07-30 17:15:59 zwróci fałsz. Koniunkcja prawdy i fałszu daje fałsz, zatem rekord nie załapie się do zwracanych wyników.