检查商店是否开门.MySQL node.js业务逻辑



给定用户时间,我正试图弄清楚一家商店是开着还是关着。

我的HoursOfOperation数据库如下所示:

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

星期日是星期日-星期六:分别为0-6。

openTime和closeTime的范围在0-2400之间。

如果用户时间是星期三1800,那就很容易了。这个地方是开放的。但是如果是星期六凌晨1点呢?大于openTime返回false,小于closeTime检查为true。false&true等于false。

我尝试过多种类型的数据和业务逻辑。但我很难理解这一点。我错过了什么?

您可以使用这样的逻辑:

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

逻辑读取为:

  • 如果openTime小于closeTime,则当请求的时间介于两者之间时,存储处于打开状态
  • 如果openTime大于closeTime,则通常closeTime将在凌晨。商店在closeTimeopenTime之间关闭。因此,这家商店在其他时间营业

最新更新