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

MySQL चुनें कि डेटाटाइम दिन से मेल खाता है (और जरूरी नहीं कि समय)

कभी नहीं DATE(datecolumns) = '2012-12-24' . जैसे चयनकर्ता का उपयोग करें - यह एक प्रदर्शन हत्यारा है:

  • यह गणना करेगा DATE() उन सभी पंक्तियों के लिए, जिनमें वे भी शामिल हैं, जो मेल नहीं खाती हैं
  • क्वेरी के लिए इंडेक्स का उपयोग करना असंभव बना देगा

इसका उपयोग करना बहुत तेज़ है

SELECT * FROM tablename 
WHERE columname BETWEEN '2012-12-25 00:00:00' AND '2012-12-25 23:59:59'

क्योंकि यह बिना गणना के सूचकांक के उपयोग की अनुमति देगा।

संपादित करें

जैसा कि Use_By_Already द्वारा इंगित किया गया है, 2012 में प्रारंभिक उत्तर के बाद से, MySQL के उभरे हुए संस्करण हैं, जहां एक दिन के अंत के रूप में '23:59:59' का उपयोग करना अब सुरक्षित नहीं है। एक अद्यतन संस्करण को पढ़ना चाहिए

SELECT * FROM tablename 
WHERE columname >='2012-12-25 00:00:00'
AND columname <'2012-12-26 00:00:00'

उत्तर का सार, यानी परिकलित व्यंजक पर चयनकर्ता का परिहार, निश्चित रूप से अभी भी कायम है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. शीर्ष 5 MySQL GUI उपकरण (निःशुल्क और सशुल्क)

  2. MySQL फ्लोटिंग पॉइंट तुलना मुद्दे

  3. सभी MySQL डेटाबेस को एक बार में निर्यात और आयात करें

  4. Mysql डेटाबेस दो डेटाबेस के बीच सिंक करता है

  5. MySQL कॉलम जोड़ें