Mysql
 sql >> Database >  >> RDS >> Mysql

Data compresa tra 2 altre date, anno a parte

Devi distinguere due casi.

  1. Quando first < last , le date sono dello stesso anno. Puoi quindi utilizzare between per abbinare le date.

  2. Quando first > last , significa last è nel prossimo anno. In questo caso, le date che corrispondono sono date >= first OR date <= last .

Quindi la tua clausola WHERE dovrebbe essere:

WHERE IF(first < last, @date BETWEEN first AND last,
                       @date >= first OR date <= last)