| Autor |
Nachricht |
13pixelchen
Account gelöscht
Ort: -
|
Verfasst Do 24.11.2005 18: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.
|
|
| |
|
 |
XSchinkenX
Dabei seit: 25.01.2004
Ort: Mars
Alter: -
Geschlecht: -
|
Verfasst Do 24.11.2005 19: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 XSchinkenX am Do 24.11.2005 19:39, insgesamt 2-mal bearbeitet
|
|
| |
|
 |
Waschbequen
Account gelöscht
Ort: -
|
Verfasst Do 24.11.2005 19: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
Ort: -
|
Verfasst Do 24.11.2005 20: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 20:14, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
XSchinkenX
Dabei seit: 25.01.2004
Ort: Mars
Alter: -
Geschlecht: -
|
Verfasst Do 24.11.2005 20: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 XSchinkenX am Do 24.11.2005 20:20, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
13pixelchen
Account gelöscht
Ort: -
|
Verfasst Do 24.11.2005 20: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: 33
Geschlecht:
|
Verfasst Do 24.11.2005 20:53
Titel
|
 |
|
|
that's wrong on so many levels i can't even begin to explain.
|
|
| |
|
 |
13pixelchen
Account gelöscht
Ort: -
|
Verfasst Do 24.11.2005 20:55
Titel
|
 |
|
|
|
| |
|
 |
| |
|
 |
| Ähnliche Themen |
PHP | SQL - Befehle der Datenbankstruktur ausgeben
[SQL] Wie 6 Ergebnisse anzeigen ohne ID / andere SQL-Fragen
Geburtstage anzeigen
[solved][MySQL] neue/alte Geburtstage ermitteln.
sql problem..
SQL Abfrage
|
 |