Comprobación de si una tienda está abierta. MySQL Node.js lógica de negocios

JD333:

dado un tiempo a los usuarios, que estoy tratando de averiguar si una tienda está abierta o cerrada.

Mi HoursOfOperation DB es el siguiente:

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

dayid es Domingo - Sábado: 0-6, respectivamente.

OpenTime y CloseTime oscilan entre 0 a 2.400.

Si el tiempo de usuario es decir 1800 en un miércoles, eso es fácil. El lugar está abierto. Pero lo que si se trata de 01 a.m. en un sábado? El mayor que OpenTime devuelve falso, y la comprobación de menos de CloseTime es cierto. && falsa iguales verdaderos falsa.

He probado varios tipos de datos y la lógica de negocio. Pero estoy luchando para envolver mi cabeza alrededor de esto. ¿Qué me estoy perdiendo?

Gordon Linoff:

Puede usar la lógica de esta manera:

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

La lógica dice así:

  • Si openTimees menos closeTime, a continuación, la tienda está abierta cuando el tiempo solicitado está entre ellos.
  • Si openTimees mayor que closeTime, a continuación, normalmente closeTimeestaría en las primeras horas de la mañana. La tienda está cerrada entre la closeTimey openTime. Por lo tanto, la tienda está abierta en otras ocasiones.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=402815&siteId=1
Recomendado
Clasificación