Du måste skilja mellan två fall.
-
När
first < last
, datumen är samma år. Du kan sedan användabetween
för att matcha datum. -
När
first > last
, det betyderlast
är under nästa år. I det här fallet är datumen som matchardate >= first OR date <= last
.
Så din WHERE-sats bör vara:
WHERE IF(first < last, @date BETWEEN first AND last,
@date >= first OR date <= last)