Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Data entre 2 outras datas, desconsiderando o ano


Você precisa distinguir dois casos.

  1. Quando first < last , as datas são no mesmo ano. Você pode então usar between para coincidir com as datas.

  2. Quando first > last , significa last é no próximo ano. Nesse caso, as datas correspondentes são date >= first OR date <= last .

Portanto, sua cláusula WHERE deve ser:
WHERE IF(first < last, @date BETWEEN first AND last,
                       @date >= first OR date <= last)