Найти в следующий раз, когда бизнес открыт; расчет часов MySQL

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

Наконец, мне нужно иметь возможность указать день открытия как конкретную дату.

Кто-нибудь может дать мне совет, как построить этот запрос?

заранее спасибо

CREATE TABLE `shop_hours` (
  `id` int(11) NOT NULL,
  `shop_id` int(11) unsigned NOT NULL,
  `day_of_week` int(11) unsigned NOT NULL,
  `open_time` time NOT NULL,
  `close_time` time NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `shop_hours` (`id`, `shop_id`, `day_of_week`, `open_time`, `close_time`)
VALUES
    (1, 1, 0, '08:00:00', '24:00:00'),
    (2, 1, 1, '08:00:00', '24:00:00'),
    (3, 1, 2, '08:00:00', '24:00:00'),
    (4, 1, 3, '08:00:00', '24:00:00'),
    (5, 1, 4, '08:00:00', '24:00:00'),
    (6, 1, 5, '08:00:00', '24:00:00'),
    (7, 1, 6, '08:00:00', '24:00:00');

Редактировать:

Чтобы уточнить немного, я не ищу открытых магазинов, а только часы для одного конкретного магазина. Исходя из часа открытия / закрытия, и сколько сейчас времени. Я сгенерирую несколько выбираемых временных отметок, увеличенных на 15 минут.

Например. если магазин только что закрылся (13:00), мне нужно будет использовать время открытия / закрытия следующего дня открытия. (магазин не обязательно открыт каждый день, может быть закрыт по воскресеньям).

Ответы на вопрос(1)

Ваш ответ на вопрос