U moet twee gevallen onderscheiden.
-
Wanneer
first < last
, de data zijn in hetzelfde jaar. U kunt danbetween
. gebruiken om datums te matchen. -
Wanneer
first > last
, het betekentlast
is in het volgende jaar. In dit geval zijn de datums die overeenkomendate >= first OR date <= last
.
Dus je WHERE-clausule zou moeten zijn:
WHERE IF(first < last, @date BETWEEN first AND last,
@date >= first OR date <= last)