Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

अगली बार जब व्यवसाय खुला हो तो खोजें; mysql घंटे गणना

Shop_id का पता लगाने के लिए, जो NOW() for के लिए खुला है

SELECT *
  FROM `shop_hours`
 WHERE `day_of_week` = DATE_FORMAT(NOW(), '%w')
   AND CURTIME() BETWEEN `open_time` AND `close_time`

अप्रचलित :

कल को खोजने के लिए उपलब्ध है open_time रों:

SELECT *
  FROM `shop_hours`
 WHERE `day_of_week` = DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 DAY), '%w')

संपादित करें 2:

अगला उपलब्ध open_time find खोजने के लिए रों:

  SELECT `shop_id`,
         MIN(CAST(CONCAT(DATE(DATE_ADD(NOW(), INTERVAL ((7 + DATE_FORMAT(NOW(), '%w') - `day_of_week`) % 7) DAY)), ' ', `open_time`) AS DATETIME)) AS `next_open_datetime`
    FROM `shop_hours`
GROUP BY `shop_id`

संपादित करें :

DATE_FORMAT(*DATE*, '%w') प्रारूप का उपयोग करता है 0 = Sunday ... 6 = Saturday

यदि आप ISO प्रारूप का उपयोग करना चाहते हैं 1 = Monday ... 7 = Sunday आपके day_of_week . में फ़ील्ड, आपको php की date('N') bind को बाइंड करना चाहिए आपकी क्वेरी के लिए (या Mysql's if function IF(DATE_FORMAT(NOW(), '%w') = 0, 7, DATE_FORMAT(NOW(), '%w')) का उपयोग करें। , लेकिन वह बदसूरत है)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL पिवट टेबल - कॉलम से पंक्तियाँ। सवाल

  2. MySQL से यादृच्छिक पंक्ति का चयन करें (संभावना के साथ)

  3. यदि स्थितियां अद्वितीय हैं तो MySQL अलग-अलग गणना करता है

  4. स्थानीय mysql उदाहरण को एप्लिकेशन के भीतर से प्रारंभ और बंद करें

  5. mysql में एक बड़ी तालिका से यादृच्छिक पंक्ति का त्वरित चयन