Vinzenz Mai: Geburtstag und -monat aus MySQL auslesen

Beitrag lesen

Hallo Tom,

select * from zeit
where datediff
      (
          date_add(now(), interval 7 day),
          concat(year(now()),'-',month(birthday),'-',day(birthday))
      )
      between 0 and 7;


> so geht es.  
  
nein, so geht es nicht immer. [suit](https://forum.selfhtml.org/?t=186764&m=1240651) hatte bereits auf den Jahreswechsel hingewiesen, den Dein Code nicht berücksichtigt. suit vergaß allerdings auf die Schaltjahrproblematik hinzuweisen, die bei der Verwendung von DAYOFYEAR zusätzlich berücksichtigt werden muss.  
  
Dein Code vernachlässigt die Schaltjahresproblematik in der Form, dass Personen nicht am 29. Februar geboren sein dürfen :-)  
  
~~~sql
SELECT  
    DATEDIFF(  
        DATE_ADD(NOW(), INTERVAL 7 DAY),  
        '2009-02-28'  
    ) differenz

liefert mir 82 als Wert,

  
SELECT  
    DATEDIFF(  
        DATE_ADD(NOW(), INTERVAL 7 DAY),  
        '2009-02-29'  
    ) differenz

jedoch NULL.

Freundliche Grüße

Vinzenz