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'))
का उपयोग करें। , लेकिन वह बदसूरत है)