आप करीब थे - तुलना को पीछे की ओर मिला (मानते हुए startDate
एक DATETIME या TIMESTAMP डेटा प्रकार है):
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
चेतावनी:
- ध्यान रखें कि आप mysql_escape_string का उपयोग कर रहे हैं। या आप SQL इंजेक्शन हमलों का जोखिम उठाते हैं ।
- कॉलम पर फ़ंक्शन कॉल का अर्थ है कि यदि कोई अनुक्रमणिका मौजूद है, तो उसका उपयोग नहीं किया जा सकता
विकल्प:
क्योंकि कॉलम पर फ़ंक्शन का उपयोग करने से अनुक्रमणिका का उपयोग नहीं किया जा सकता है, एक बेहतर तरीका यह होगा कि BETWEEN
का उपयोग किया जाए और STR_TO_DATE
कार्य:
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
सिंटैक्स को फ़ॉर्मेट करने के लिए दस्तावेज़ देखें।