Проверка, открыт ли магазин. MySQL node.js Бизнес-логика - PullRequest
0 голосов
/ 02 апреля 2020

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

Моя база данных HoursOfOperation выглядит так:

dayid | openTime | closeTime
  3       1500      2400
  4       1500      2400
  5       1500       100
  6       1500       200

dayid is воскресенье - суббота: 0-6 соответственно.

openTime и closeTime находятся в диапазоне от 0 до 2400.

Если пользовательское время, скажем, 1800 в среду, это просто. Место открыто. Но что, если в субботу 1 час ночи? Значение больше, чем openTime, возвращает false, а проверка меньше, чем closeTime, имеет значение true. false && true равно false.

Я пробовал несколько типов данных и бизнес-логи c. Но я изо всех сил пытаюсь обернуть голову вокруг этого. Что мне не хватает?

1 Ответ

1 голос
/ 02 апреля 2020

Вы можете использовать logi c следующим образом:

where dayid = @dayid and
      ( (openTime < closeTime and @timetocheck between openTime and closeTime) or
        (openTime > closeTime and @timetocheck not between closeTime and openTime)
      )

Лог c читается как:

  • Если openTime меньше closeTime, тогда магазин будет открыт, когда между ними будет запрошенное время.
  • Если openTime больше closeTime, то, как правило, closeTime будет в первые утренние часы. Магазин закрыт между closeTime и openTime. Следовательно, магазин открыт в другое время.
...