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

MySQL समय सीमा से विभाजित

हर बार जब आप वापस लौटना चाहते हैं तो आपको एक पंक्ति स्रोत की आवश्यकता होती है। फिर आप लौटाई जाने वाली पंक्तियों का चयन करने के लिए जॉइन ऑपरेशन का उपयोग कर सकते हैं।

अगर आपके पास इस तरह की टेबल होती:

CREATE TABLE cal (tm TIME NOT NULL PRIMARY KEY) ENGINE=InnoDB ;
INSERT INTO cal (tm)  VALUES ('00:00:00'),('00:30:00');
INSERT INTO cal (tm) SELECT ADDTIME(tm,'01:00:00') FROM cal;
INSERT INTO cal (tm) SELECT ADDTIME(tm,'02:00:00') FROM cal;
INSERT INTO cal (tm) SELECT ADDTIME(tm,'04:00:00') FROM cal;
... 

तब आप इसे अपनी क्वेरी में इस्तेमाल कर सकते हैं:

SELECT v.id
     , c.tm
  FROM myview v
  JOIN cal c
    ON c.tm >= v.hour_from
   AND c.tm <= v.hour_to
 ORDER BY v.id, c.tm

यदि आप किसी विशिष्ट प्रारूप में समय मान चाहते हैं, तो आप DATE_FORMAT . का उपयोग कर सकते हैं समारोह:

SELECT v.id
     , DATE_FORMAT(c.tm,'%H:%i') AS hour_

यह मानता है कि दृश्य द्वारा लौटाए गए मान TIME हैं डेटा प्रकार। यदि वे नहीं हैं, तो आप उन्हें रूपांतरित करना चाहेंगे। (या आप एक ही परिणाम एक विहित प्रारूप में वर्ण स्ट्रिंग के साथ काम कर प्राप्त कर सकते हैं।)

नोट:यह अनिवार्य नहीं है कि आपके पास एक टेबल हो; यह कोई भी पंक्ति स्रोत हो सकता है, जैसे इनलाइन दृश्य। आपको बस पर्याप्त पंक्तियों की आवश्यकता है (आपके मामले में, 00:00 से 23:30 तक आधे घंटे की वृद्धि मानते हुए, यह 48 पंक्तियाँ हैं।)

यदि आपके पास कोई समय सीमा है जो मध्यरात्रि की सीमा को "पार" करती है (उदाहरण के लिए 22:00 से 02:00), तो उदाहरण क्वेरी कोई पंक्ति नहीं लौटाएगी। आपको समायोजन करना होगा।

कुछ इस तरह:

 JOIN cal c
   ON ( t.hour_from <= t.hour_to 
      AND c.tm >= v.hour_from
      AND c.tm <= v.hour_to
      )
   OR ( t.hour_from > t.hour_to 
      AND (   c.tm <= v.hour_from
          OR  c.tm >= v.hour_to
          )
      )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं OS X तेंदुए पर MySQL और Python MySQL पैकेज कैसे स्थापित करूं? या मैं ओएस एक्स का उपयोग करके वेब डेवलपर होने के बारे में कैसे सीखूं?

  2. यादृच्छिक नमक के साथ पासवर्ड हैशिंग में सुधार करें

  3. डीबी के लिए मोचा टेस्ट कनेक्टिविटी

  4. PhpMyadmin में अधिकतम निष्पादन समय

  5. मैसकल 5.7 त्रुटि 3143 (42000):अमान्य JSON पथ अभिव्यक्ति। त्रुटि वर्ण स्थिति के आसपास है 3