Jak uvedli jiní, musíte ve svém srovnání ignorovat rok. Funkce DAYOFYEAR() je jedním ze způsobů, jak toho dosáhnout.
Tady je rychlé řešení z hlavy. Během následujících 10 dnů vrátí všechny narozeniny, i když je konec prosince a narozeniny jsou příští rok.
Nezpracovává správně přestupné roky, takže u narozenin na začátku března bude o 1 den pryč, pokud je tento rok přestupným rokem a osoba se nenarodila v přestupném roce nebo naopak. Přestupné roky také způsobí, že počátkem ledna se někdy na konci prosince objeví jeden volný den. Pokud by někdo chtěl přidat opravu na přestupný rok, klidně :)
SELECT birthdate
FROM Anniversaries
WHERE dayofyear(birthdate) - dayofyear(curdate()) between 0 and 10
or dayofyear(birthdate) + 365 - dayofyear(curdate()) between 0 and 10;