Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Datum zwischen 2 anderen Daten, ohne Berücksichtigung des Jahres

Sie müssen zwei Fälle unterscheiden.

  1. Wenn first < last , die Daten sind im selben Jahr. Sie können dann between verwenden Daten entsprechen.

  2. Wann first > last , es bedeutet last ist im nächsten Jahr. In diesem Fall sind die übereinstimmenden Daten date >= first OR date <= last .

Ihre WHERE-Klausel sollte also lauten:

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