Autor |
Nachricht |
13pixelchen
Account gelöscht Threadersteller
Ort: -
|
Verfasst Do 24.11.2005 17:52
Titel [(My)SQL] Nächste 5 Geburtstage ausgeben |
|
|
Hi,
Ich kriegs nicht auf die Reihe, vielleicht kann mir irgendein SQL-Junkie nen Tipp geben. Ich möchte aus einer Tabelle, die Geburtstage im DATE-field (jjjj-mm-tt) enthält die nächsten 5 Geburtstage ausgeben. Ich denke, das geht in einem Query, wenn man die passenden Funktionen kennt. Nur habe ich nicht genug Überblick über die MySQL Funktionen, die für sowas nötig sind. Nein, Google findet nicht wirklich etwas. Oder ich hab die falschen Suchbegriffe.
Auch auf die Gefahr hin, dass ich mal wieder alleine bleibe mit so einem speziellen Problem.
|
|
|
|
|
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Do 24.11.2005 18:37
Titel
|
|
|
SELECT * FROM tabelle WHERE geburtstag > NOW() ORDER BY geburtstag (ASC|DESC <= Kein Plan) LIMIT 0,5;
sehr speziell ist das aber nicht
Zuletzt bearbeitet von am Do 24.11.2005 18:39, insgesamt 2-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Waschbequen
Account gelöscht Threadersteller
Ort: -
|
Verfasst Do 24.11.2005 18:58
Titel
|
|
|
XSchinkenX hat geschrieben: | SELECT * FROM tabelle WHERE geburtstag > NOW() ORDER BY geburtstag (ASC|DESC <= Kein Plan) LIMIT 0,5;
sehr speziell ist das aber nicht |
Asc, sonst gibt's die entferntesten 5
|
|
|
|
|
13pixelchen
Account gelöscht Threadersteller
Ort: -
|
Verfasst Do 24.11.2005 19:06
Titel
|
|
|
Hä, ich denke NOW gibt einen Timestamp zurück, aber die DATE-Kolumne hat ein anderes Format. Das ist ja das Problem. Da die Timestamps auch nur einen eingeschränkten Datumsbereich abdecken.
// edit: Ich glaub ich habs. Man sollte vielleicht doch nicht ausschließlich englisch googlen:
((TO_DAYS(NOW())-TO_DAYS(Geburtstag))/365)
Zuletzt bearbeitet von am Do 24.11.2005 19:14, insgesamt 1-mal bearbeitet
|
|
|
|
|
Account gelöscht
Threadersteller
Ort: -
Alter: -
|
Verfasst Do 24.11.2005 19:18
Titel
|
|
|
probiers aus bevor du meckerst.
Zitat: | NOW()
Returns the current date and time as a value in 'YYYY-MM-DD HH:MM:SS' or YYYYMMDDHHMMSS format, depending on whether the function is used in a string or numeric context. |
Alternativ tuts sicher auch curdate().
Zitat: |
((TO_DAYS(NOW())-TO_DAYS(Geburtstag))/365) |
? Das brauchst du nicht, ist klar, oder? Ein einfacher Vergleich gegen NOW() reicht, wenigstens im mysql DBMS.
Zuletzt bearbeitet von am Do 24.11.2005 19:20, insgesamt 1-mal bearbeitet
|
|
|
|
|
13pixelchen
Account gelöscht Threadersteller
Ort: -
|
Verfasst Do 24.11.2005 19:29
Titel
|
|
|
Sorry, Schinken, aber auch to_days scheint es in MySQL nicht zu geben, und wie gesagt, es klappt (bei mir nicht) das so zu vergleichen. Aber Du hast mich auf die richtige einfach Spur gebracht (!).
Code: |
SELECT nachname, geburtstag FROM tabelle WHERE (
RIGHT(geburtstag, 5) > $today
) ORDER BY geburtstag DESC LIMIT 5;
|
wobei $today "mm-dd" ist.
|
|
|
|
|
gtz
Dabei seit: 15.04.2002
Ort: -
Alter: 48
Geschlecht:
|
Verfasst Do 24.11.2005 19:53
Titel
|
|
|
that's wrong on so many levels i can't even begin to explain.
|
|
|
|
|
13pixelchen
Account gelöscht Threadersteller
Ort: -
|
Verfasst Do 24.11.2005 19:55
Titel
|
|
|
|
|
|
|
|
|
|
|
Ähnliche Themen |
Geburtstage anzeigen
[solved][MySQL] neue/alte Geburtstage ermitteln.
Datenbank ausgeben
[PHP] Whitespace mit ausgeben
Zufallstext ausgeben
[PHP] Textdatei mit BOM ausgeben?
|
|