Geburtstag(e) von SQL Tabelle mit DATE Format

ähm.... *schäm*

ok... es Geht :( ich hatte im Ursprünglichen Script 10 Tage eingestellt... Jetzt war'ns nur noch 7 Tage und deswegen... sorry!

Also, danke es geht :)
 
Hallo!

Wie wärs denn damit:
SQL:
mysql> desc birthday;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
| bdate | date    | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> select * from birthday;
+------+------------+
| id   | bdate      |
+------+------------+
|    1 | 2006-12-28 |
|    2 | 2007-08-29 |
|    3 | 2006-12-31 |
|    4 | 2006-08-30 |
|    5 | 2007-01-05 |
|    6 | 2007-02-23 |
|    7 | 2006-12-24 |
|    8 | 2003-12-24 |
|    9 | 2003-12-29 |
|   10 | 2001-01-01 |
|   11 | 2006-01-23 |
+------+------------+
11 rows in set (0.00 sec)

mysql> select id,bdate from birthday where datediff(MAKEDATE(YEAR(CURRENT_DATE()) +1,DAYOFYEAR(bdate)),CURRENT_DATE()) % dayofyear(last_day(
CURRENT_DATE())) between 0 and 7;
+------+------------+
| id   | bdate      |
+------+------------+
|    1 | 2006-12-28 |
|    3 | 2006-12-31 |
|    9 | 2003-12-29 |
|   10 | 2001-01-01 |
+------+------------+
4 rows in set (0.00 sec)

mysql> select id,bdate from birthday where datediff(MAKEDATE(YEAR(CURRENT_DATE()) +1,DAYOFYEAR(bdate)),CURRENT_DATE()) % dayofyear(last_day(
CURRENT_DATE())) between 0 and 8;
+------+------------+
| id   | bdate      |
+------+------------+
|    1 | 2006-12-28 |
|    3 | 2006-12-31 |
|    5 | 2007-01-05 |
|    9 | 2003-12-29 |
|   10 | 2001-01-01 |
+------+------------+
5 rows in set (0.00 sec)
//Edit: jetzt passts :)

Gruß Tom
 
Eure Methoden funktionieren aber nur, wenn die Daten in der Zukunft liegen. Bei Geburtstagen ist das jedoch selten der Fall.
 
Daher hab ich auch geschrieben "geht wenn man die Geburtstage der kommenden sieben Tage auslesen möchte"...
 
:) nette Posts, aber ich bleib mal bei dem, was jetzt ganz gut geht von Gumbo ;)

Aber eine Frage, die nur bedingt was hiermit zu tun hat, hätte ich da noch:

Wie bekomm ich denn raus, wie alt das Geburtstagskind wird :)? Ich hatte es schon mal, aber nach dem jetzt das Jahr auch mit bedacht werden muss, keine ahnung..............
 
Da helfen Dir die Unix Timestamps auch nicht weiter.. Würde entweder einfach die Jahreszahlen subtrahieren bzw. in der MySQL Doku nachlesen. MySQL kann mit DATE Feldern auch rechnen (so wie etwa DATEDIFF). Pass aber unbedingt auf die Version auf!
 
Zurück