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

टाइमस्टैम्प कॉलम से वर्तमान महीनों के रिकॉर्ड mysql का चयन करें

अपडेट करें

कई तिथियों के लिए अपने डेटा को क्वेरी करने का एक बेहतर अनुक्रमणिका-अनुकूल तरीका

SELECT id, FROM_UNIXTIME(timestampfield) timestamp 
  FROM table1
 WHERE timestampfield >= UNIX_TIMESTAMP(LAST_DAY(CURDATE()) + INTERVAL 1 DAY - INTERVAL 1 MONTH)
   AND timestampfield <  UNIX_TIMESTAMP(LAST_DAY(CURDATE()) + INTERVAL 1 DAY);

नोट: आप अपने कॉलम डेटा पर कोई फ़ंक्शन लागू नहीं करते हैं, बल्कि शर्तों के दाईं ओर सभी आवश्यक गणना करते हैं (जो स्थिरांक हैं और निष्पादन के बाद केवल एक बार मूल्यांकन किया जाता है)। इस तरह आप MySQL को timestampfield पर मौजूद इंडेक्स (एस) से लाभ उठाने की अनुमति देते हैं कॉलम।

मूल उत्तर:

SELECT id, FROM_UNIXTIME(timestampfield) timestamp 
  FROM table1
 WHERE MONTH(FROM_UNIXTIME(timestampfield)) = MONTH(CURDATE())
   AND YEAR(FROM_UNIXTIME(timestampfield)) = YEAR(CURDATE())

नोट: हालांकि यह क्वेरी सही परिणाम देती है, लेकिन यह उस इंडेक्स के उचित उपयोग को प्रभावी रूप से अमान्य कर देती है जो आपके पास timestampfield पर हो सकता है कॉलम (जिसका अर्थ है कि MySQL को पूर्ण स्कैन करने के लिए मजबूर किया जाएगा)

यह रहा SQLFiddle डेमो



  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 को सिद्धांत क्वेरी बिल्डर में कनवर्ट करना। IF और CONCAT के साथ मुद्दे। या चयन पर उपश्रेणियों के लिए एक और दृष्टिकोण

  2. संग्रहीत प्रक्रिया के माध्यम से दिन प्रदर्शित करें

  3. mysql_real_escape_string के साथ php filter_var का उपयोग करना

  4. MySQL कार्यक्षेत्र के साथ दृश्य डेटाबेस निर्माण

  5. क्या टेबल फ़ील्ड में हाइफ़न हो सकता है?