sql >> Databasteknik >  >> RDS >> Mysql

Datum mellan 2 andra datum, utan hänsyn till årtal

Du måste skilja mellan två fall.

  1. När first < last , datumen är samma år. Du kan sedan använda between för att matcha datum.

  2. När first > last , det betyder last är under nästa år. I det här fallet är datumen som matchar date >= 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)



  1. Hur fixar jag dåligt formaterad JSON i PHP?

  2. Autorunning Query i mysql

  3. Ta bort alla rader utom första N från en tabell med en kolumn

  4. Använd den korrekta, eller att föredra, inte lika operatorn i MySQL