I have the following table of people and their birthdays:
name birthday ---------------------- yannis 1979-06-29 natalia 1980-08-19 kostas
i would try it like this (but this isn't tested):
SELECT name, birthday FROM birthdays ORDER BY ABS( DAYOFYEAR(birthday) - (DAYOFYEAR(CURDATE()) ) ASC
EDIT: changed ordering from DESC to ASC because you want to get the farthest first, not the closest.
DESC
ASC