tschuldigung, man sollte erst lesen.
SELECT ... FROM ...
WHERE NOW() BETWEEN geburtstag - INTERVAL 20 YEAR AND geburtstag -INTERVAL 30 YEAR
ist falsch, da der geburtstag ja schon 20 bis 30 jahre her ist. von diesem sollte man nicht noch einmal 20 oder 30 jahre abziehen, dann kommt man erst recht nicht auf das heutige datum.
SELECT ... FROM ...
WHERE NOW() BETWEEN geburtstag + INTERVAL 20 YEAR AND geburtstag + INTERVAL 30 YEAR
oder
SELECT ... FROM ...
WHERE geburtstag BETWEEN NOW() - INTERVAL 20 YEAR AND NOW() -INTERVAL 30 YEAR