दिनांक (और समय) के साथ यदि आप >= start AND < end
. का उपयोग करते हैं तो कई चीजें आसान हो जाती हैं ।
उदाहरण के लिए:
SELECT
user_id
FROM
user_logs
WHERE
login_date >= '2014-02-01'
AND login_date < '2014-03-01'
इस मामले में आपको अभी भी उस महीने की आरंभ तिथि की गणना करने की आवश्यकता है जिसकी आपको आवश्यकता है, लेकिन यह किसी भी तरह से सीधे आगे होना चाहिए।
अंतिम तिथि को भी सरल बनाया गया है; बस ठीक एक महीना जोड़ें। 28वें, 30वें, 31वें, आदि के साथ कोई खिलवाड़ नहीं।
इस संरचना में अनुक्रमणिका के उपयोग को बनाए रखने में सक्षम होने का लाभ भी है।
बहुत से लोग निम्न जैसे फॉर्म का सुझाव दे सकते हैं, लेकिन वे नहीं अनुक्रमणिका का उपयोग करें:
WHERE
DATEPART('year', login_date) = 2014
AND DATEPART('month', login_date) = 2
इसमें तालिका में हर एक पंक्ति (एक स्कैन) के लिए शर्तों की गणना करना शामिल है और पंक्तियों की श्रेणी का पता लगाने के लिए अनुक्रमणिका का उपयोग नहीं करना जो मेल खाती हैं (एक श्रेणी-खोज)।