मेरे पास एक MySQL डीबी है जिसमें टाइमस्टैम्प फ़ील्ड शीर्षक वाली तारीख है। मैं उन सभी क्षेत्रों का चयन कैसे कर सकता हूं जहां माह वर्तमान माह है?टाइमस्टैम्प कॉलम से वर्तमान महीनों के रिकॉर्ड mysql का चयन करें
अग्रिम धन्यवाद!
मेरे पास एक 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 एक fullscan प्रदर्शन करने के लिए)
यहाँ है मजबूर किया जाएगा SQLFiddle डेमो
आप अनुक्रमित इस्तेमाल किया जा करना चाहते हैं, स्तंभ के लिए किसी भी समारोह लागू नहीं करते हैं:
SELECT *
FROM tableX
WHERE `date` >= UNIX_TIMESTAMP((LAST_DAY(NOW())+INTERVAL 1 DAY)-INTERVAL 1 MONTH)
AND `date` < UNIX_TIMESTAMP(LAST_DAY(NOW())+INTERVAL 1 DAY) ;
कार्यों के लिए इस्तेमाल किया MySQL डॉक्स में पाया जा सकता है: Date and Time functions
कोशिश इस
SELECT * FROM table WHERE month(data) = EXTRACT(month FROM (NOW()))
इस क्वेरी
उपर्युक्त क्वेरी केवल महीने की तुलना करेगी ताकि आपको पिछले वर्ष के महीने का रिकॉर्ड मिल सके .. मुझे लगता है कि सही क्वेरी है "==== तालिका से चुनें जहां माह (डेटा) = एक्स्ट्राक्ट (महीने से (अब())) और वर्ष (डेटा) = एक्सट्रैक्ट (वर्ष से (अब())) ===== " –
उपयोग कर सकते हैं इस मदद आप,
Query = "SELECT * FROM <table_name> WHERE MONTH(date_entered) = MONTH(CURDATE())";
मुझे लगता है कि MySQL में यह सबसे आसान तरीका है जिसे मैंने कोशिश की है और अच्छी तरह से काम करता है, आप पंक्तियों का चयन करना चाहते हैं जहां timestampfield
इस महीने में है।
SELECT * FROM your_table
WHERE MONTH(timestampfield)=MONTH(CURRENT_DATE()) AND
YEAR(timestampfield)=YEAR(CURRENT_DATE());
ऊपर सभी रिकॉर्ड है कि timestampfield MySQL में इस महीने है
SELECT 'data of your choice '
FROM 'your table'
WHERE
MONTH'datecolumn'=MONTH(CURRENT_DATE)
अपने डेटाबेस से उपयुक्त के साथ 'में' पाठ की जगह वापस आ जाएगी
SELECT [columns]
FROM [the_table]
WHERE MONTH([date_column]) = MONTH(CURDATE())
के बीच पाठ बदलें [ ] ([] सहित) अपने डेटा के साथ।
मेरी राय में, निम्नलिखित स्वीकार किए जाते हैं जवाब की तुलना में अधिक पठनीय है ...
SELECT id, FROM_UNIXTIME(timestampfield) timestamp
FROM table1
WHERE timestampfield >= DATE_FORMAT(NOW(), '%Y-%m-01')
नोट: यह रूप में अच्छी तरह अगले महीने से किसी भी रिकॉर्ड का चयन करेंगे। आमतौर पर कोई फर्क नहीं पड़ता, क्योंकि कोई भी नहीं बनाया गया है।
https://stackoverflow.com/questions/4654961/mysql-only-within-the-current-month/ –