आपको दो मामलों में अंतर करना होगा।
-
जब
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)