SQL Datum

Hallo,
ich möchte einen Geburtstagskalender erstellen, mit einer Info, in wie vielen Tagen der Geburtstag ist!

Ein Problem besteht hierbei für mich.
Aufgrund des Schaltjahres kann ein Tag im Jahr einen unterschiedlichen Jahresdatum haben.
Beweis:
Code:
SELECT DAYOFYEAR('0000-08-28'),DAYOFYEAR('1962-08-28') FROM `persons` WHERE 1 limit 0,01
Ich möchte, dass der Tag des Jahres für DIESES Jahr berechnet wird.
Also einen MIX aus dem aktuellen Jahr und dem Montag und Tag des Geburtstages.
Hat jemand eine Idee, wie ich dies abfragen kann?

Also ich stelle es mir so vor: DAYOFYEAR('2008'||EXTRACT(MONTH FROM `birthday`)||EXTRACT(DAY FROM `birthday`)) nur das geht leider nicht :(

Hier mein SQL-Skript:
Code:
select id, title, firstname, surename, birthday, email, 
	(DAYOFYEAR(birthday)-DAYOFYEAR(curdate())) as 'daystobirthday',
	DAYOFYEAR(birthday),
	DAYOFYEAR(curdate())
	from persons
	where  
	EXTRACT(MONTH FROM `birthday`)!=0 AND  EXTRACT(DAY FROM `birthday`)!=0 AND
	DAYOFYEAR(curdate()) <=  DAYOFYEAR(birthday)
	order by EXTRACT(MONTH FROM `birthday`), EXTRACT(DAY FROM `birthday`)

habe es selbst gelöst mit concat!

Code:
select id, title, firstname, surename, birthday, email, 
	CONCAT(YEAR(now()),'-',EXTRACT(MONTH FROM `birthday`),'-',EXTRACT(DAY FROM `birthday`)) birthdaythisyear,
	(DAYOFYEAR(CONCAT(YEAR(now()),'-',EXTRACT(MONTH FROM `birthday`),'-',EXTRACT(DAY FROM `birthday`)))-DAYOFYEAR(curdate())) as 'daystobirthday'
	from persons
	where  
	EXTRACT(MONTH FROM `birthday`)!=0 AND  EXTRACT(DAY FROM `birthday`)!=0 AND
	DAYOFYEAR(curdate()) <=  DAYOFYEAR(birthday)
	order by EXTRACT(MONTH FROM `birthday`), EXTRACT(DAY FROM `birthday`)";
 
Zurück
Oben