offer_date
As के रूप में एक संख्या है, और आपकी वास्तविक तिथियों की तुलना में कम सटीकता की है, यह काम कर सकती है...
- अपनी वास्तविक तिथि को प्रारूप की एक स्ट्रिंग में बदलें YYYYMM
- उस मान को एक INT में बदलें
- अपने offer_date
के परिणाम की तुलना करें
SELECT
*
FROM
offers
WHERE
offer_date = (SELECT CAST(to_char(create_date, 'YYYYMM') AS INT) FROM customers where id = '12345678')
AND offer_rate > 0
साथ ही, create_date
. पर सभी हेरफेर करके आप केवल एक मान पर प्रसंस्करण करते हैं।
इसके अतिरिक्त, क्या आपने offer_date
. में हेर-फेर किया था? आप उस क्षेत्र में किसी भी अनुक्रमणिका का उपयोग नहीं कर पाएंगे, और इसलिए SEEKs के बजाय SCANs को बाध्य करें।