आम तौर पर अगर मैं मैं इसे इस तरह से करना होगा तिथि सीमा से एक मेज पर एक प्रश्न बनाना चाहते:दिनांक सीमा के साथ SQL क्वेरी में साल की उपेक्षा कर
SELECT DISTINCT c.ID AS 'id' FROM CUST c
JOIN TICKET t ON s.ID = t.SALE_ID
WHERE c.ACTIVE_IND = 1
AND t.DELIV_DATE BETWEEN '01-01-2012' AND '01-02-2012'
ORDER BY t.DELIV_DATE DESC
अब मैं एक ही क्वेरी बनाने की जरूरत है, लेकिन साल को अनदेखा करें, इसलिए मैं 28 फरवरी से 2 मार्च तक कह सकता हूं और इससे कोई फर्क नहीं पड़ता।
SELECT DISTINCT c.ID AS 'id' FROM CUST c
JOIN TICKET t ON s.ID = t.SALE_ID
WHERE c.ACTIVE_IND = 1
AND MONTH(t.DELIV_DATE) BETWEEN ... AND ...
AND DAY(t.DELIV_DATE) ... BETWEEN ...
ORDER BY t.DELIV_DATE DESC
क्वेरी से ऊपर ठीक काम करता है, तो शुरू कर दिन समाप्त होने से छोटी है:
मैं क्वेरी को संशोधित करने की कोशिश की। इसका मतलब है कि अगर मैं 20 फरवरी से 28 फरवरी को कहता हूं तो यह ठीक काम करता है लेकिन अगर मैं 28 फरवरी से 2 मार्च तक जाता हूं तो यह काम नहीं करेगा।
इसके लिए कोई समाधान है कि मैं इसे एक ही प्रश्न में कर सकता हूं?
आप DAYOFYEAR और MAKEDATE का उपयोग करें और उन सब को एक ही वर्ष के लिए सेट करना चाहिए। मेकेडेट (1 9 71, डेयॉफीयर (टी। डीईएलआईवीएडीएटी)) दोनों के बीच मेकेडेट (1 9 71, डेयॉफीयर ('01 -01-2012 ')) और मेकेडेट (1 9 71, डेयॉफीयर ('01 -02-2012')) –
के लिए धन्यवाद आप सर्गेई टिप्पणी करते हैं। यह ठीक लगता है लेकिन मौत एपिल के समाधान सरल और कम जटिल लगते हैं। हालांकि मुझे इसके बारे में कुछ और परीक्षण चलाना चाहिए। – Tohid