Возможно, вам будет лучше, если вы сохраните «Открытое время» и «Закрытое время». Это будет намного проще для разработчиков. Если у вас есть какая-то потребность в нескольких открытых периодах в течение дня, таких как места, которые открыты утром, закрыты на обед, а затем открыты снова днем, я предлагаю вам создать таблицу «времени открытия» с «Время открытия» и «Время закрытия», а также внешний ключ, ссылающийся на исходную таблицу, чтобы вы могли хранить несколько открытых периодов. Вы можете думать, что вы умны со своими битами или чем-то подобным, но на самом деле просто все усложняете. Кроме того, вы не можете приспосабливаться к вещам, происходящим в получасе или даже в более высоком разрешении. Перечитывая вопрос, я вижу, вы хотите хранить несколько дней. Если вам нужно разное время открытия для каждого дня, тогда мое второе решение будет работать хорошо. Иметь такой стол.
ID (INT), F_ID (INT), DAY_OF_WEEK (INT), OpenTime (время), CloseTime (время)
ID - это просто автоинкремент для этой таблицы, F_ID - внешний ключ к исходной таблице, день недели может быть целым числом или перечислением, представляющим день недели, OpenTime и CloseTime - поля «Time», которые могут хранить время без даты. Это должно сделать вещи намного более ясными для вас самих, и для всех, кто будет работать над кодом в будущем. Кроме того, поиск будет быстрее, так как вы можете индексировать свои поля времени. Выполнение двоичного xor эквивалентно использованию "LIKE"% word% 'для поиска строк, и его следует избегать.