21
OK, danke für den Tipp.
Leider werden dadurch auch keiner Geburtstagskinder aufgezeigt
Leider werden dadurch auch keiner Geburtstagskinder aufgezeigt
WHERE DATE_FORMAT(geburtsdatum, '%Y%m') BETWEEN PERIOD_ADD(DATE_FORMAT(CURDATE(), '%Y%m'), 1) AND PERIOD_ADD(DATE_FORMAT(CURDATE(), '%Y%m'), 2)
DATE_FORMAT(geburtsdatum, '%Y%m')
CONCAT(IF(MONTH(geburtsdatum) < MONTH(CURDATE()), YEAR(CURDATE()) + 1, YEAR(CURDATE())), DATE_FORMAT(geburtsdatum, '%m'))
$sql = "
SELECT id, name, vorname, geburtsdatum, (YEAR(CURDATE()) - YEAR(geburtsdatum)) AS `alter`, DAYOFMONTH(geburtsdatum) AS geburtstag, MONTH(geburtsdatum) AS geburtsmonat
FROM geburtstagsliste
WHERE CONCAT(IF(MONTH(geburtsdatum) < MONTH(CURDATE()), YEAR(CURDATE()) + 1, YEAR(CURDATE())), DATE_FORMAT(geburtsdatum, '%m'))
ORDER BY geburtsmonat, geburtstag";
WHERE CONCAT(IF(MONTH(geburtsdatum) < MONTH(CURDATE()), YEAR(CURDATE()) + 1, YEAR(CURDATE())), DATE_FORMAT(geburtsdatum, '%m')) BETWEEN PERIOD_ADD(DATE_FORMAT(CURDATE(), '%Y%m'), 1) AND PERIOD_ADD(DATE_FORMAT(CURDATE(), '%Y%m'), 2)
Eigentlch sollte ja in diesem Fall, Dezember vor Januar kommen
und auch bei Person 1 60 Jahre stehn und nicht 59.
(YEAR(CURDATE()) - YEAR(geburtsdatum)) AS `alter`
(IF(MONTH(geburtsdatum) < MONTH(CURDATE()), YEAR(CURDATE()) + 1, YEAR(CURDATE())) - YEAR(geburtsdatum)) AS `alter`
und wie sollte dass dann aussehen?Zitat von Jörg Eigentlch sollte ja in diesem Fall, Dezember vor Januar kommen
Das kannst du erreichen, indem du im ORDER BY Statement zuerst noch nach dem Jahr sortierst.
ORDER BY YEAR, geburtsmonat, geburtstag";
Thema | Autor | Forum | Beiträge | Letzter Beitrag |
---|---|---|---|---|
Spanne statt alle Zahlen | Tilman | PHP und MySQL | 4 | 09.08.2008 18:06 |