Selecione o tempo entre duas vezes o mysql

Eu tenho que verificar se um horário específico é entre dois horários (horário de abertura e fechamento).

Os horários de abertura e fechamento são salvos em um banco de dados como "início" e "final" relacionados a um ID do dia da semana e não a uma data.

Portanto, meu problema é que eu tenho dois casos diferentes. O primeiro caso é que o horário de término é maior que o horário de início, como se final = 19: 00: 00 e início = 09: 00: 00

mas também pode ser final = 06: 00: 00 e início = 20: 00: 00

Então, qual é uma maneira de desempenho para verificar se o tempo está entre as duas vezes?

Meu sql fica assim:

SELECT * 
      FROM opening
      WHERE weekday_id = :weekday
      AND start <=  :time
      AND end >=  :time 

questionAnswers(2)

yourAnswerToTheQuestion