Mysql
 sql >> база данни >  >> RDS >> Mysql

Работно време на MySQL

Ако не можете да промените таблицата, тогава можете да използвате тази заявка:

SELECT COUNT(*) 
FROM opening_hrs
WHERE (((100*HOUR(NOW())+MINUTE(NOW()) >= openTime) 
        AND (100*HOUR(NOW())+MINUTE(NOW()) <= closeTime + 2400*(closeDay-openDay)))
       OR 
       ((100*HOUR(NOW())+MINUTE(NOW()) >= openTime - 2400*(closeDay-openDay)) 
        AND (100*HOUR(NOW())+MINUTE(NOW()) <= closeTime )))
AND openDay = 1

Ако можете да промените таблицата да изглежда така:

+---------+----------+-----------+
|     day | openTime | closeTime |
+---------+----------+-----------+
|       0 | 1800     |  2400     |
|       1 | 1800     |  2400     |
|       2 | 1800     |  2400     |
|       3 | 1800     |  2400     |
|       4 | 1800     |  2400     |
|       5 | 1800     |  2400     |
|       6 | 1800     |  2400     |
|       0 |    0     |   400     |
|       1 |    0     |   400     |
|       2 |    0     |   400     |
|       3 |    0     |   400     |
|       4 |    0     |   400     |
|       5 |    0     |   400     |
|       6 |    0     |   400     |
+---------+----------+-----------+

тогава можете да изпълните заявката по следния начин:

SELECT COUNT(*) 
FROM opening_hrs
WHERE (100*HOUR(NOW())+MINUTE(NOW()) >= openTime) 
AND (100*HOUR(NOW())+MINUTE(NOW()) <= closeTime)
AND day = 1

Имайте предвид, че няма повече openDay и closeDay; само day колона. Имайте предвид също, че openTime винаги е по-малко от closeTime , така че неравенствата в заявката могат да работят.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Естествената заявка на JPA за полето LONGTEXT в изглед на MySQL води до грешка

  2. Стратегии за справяне с постоянно променящите се изисквания за MySQL схеми?

  3. GET параметрите са уязвими към SQL инжекция - PHP

  4. Липсващи връзки в tomcat jdbc пул за връзки

  5. Съхраняване на номера на кредитни карти в SESSION – начини за заобикаляне?