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:
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:
habe es selbst gelöst mit concat!
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
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`)";