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

ध्यान दें कि अब कोई ओपनडे और क्लोजडे नहीं है; बस एक day column.ध्यान दें कि 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. PDO/MySQL तैयार कथन का उपयोग करते हुए पैरामीटर के रूप में तालिका का नाम

  2. विजुअल स्टूडियो 2013 में EF6 के माध्यम से MySQL से कनेक्ट नहीं हो सका

  3. दिनांक और समय की तुलना php

  4. एडब्ल्यूएस आरडीएस पर MySQL को PostgreSQL में माइग्रेट करना, भाग 3

  5. हर दिन 12:00:00 और 18:00:00 के बीच के अंतराल में समय के अनुसार रिकॉर्ड का चयन करें