आपको दो मामलों में अंतर करना होगा।
-
जब
first < last, तिथियां एक ही वर्ष में हैं। फिर आपbetween. का उपयोग कर सकते हैं तारीखों का मिलान करने के लिए। -
जब
first > last, इसका अर्थ हैlastअगले वर्ष में है। इस मामले में, मेल खाने वाली तिथियां हैंdate >= first OR date <= last।
तो आपका WHERE क्लॉज होना चाहिए:
WHERE IF(first < last, @date BETWEEN first AND last,
@date >= first OR date <= last)