Найти в следующий раз, когда бизнес открыт; расчет часов 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), мне нужно будет использовать время открытия / закрытия следующего дня открытия. (магазин не обязательно открыт каждый день, может быть закрыт по воскресеньям).