Bookmarks

Yahoo Gmail Google Facebook Delicious Twitter Reddit Stumpleupon Myspace Digg

Search queries

procmail + change subject, w2ksp4.exe download, /proc/kallsyms format, sqldatasource dal, wwwxxxenden, convert raid5 to raid 10 mdadm, apache force chunked, nrao wwwxxx, xxxxxdup, procmail change subject header

Links

XODOX
Impressum

#1: kommende 10 Geburtstage anzeigen

Posted on 2008-01-29 12:59:27 by Tobias Winkelhauser

ich möchte gerne eine Liste ausgeben in der die nächsten 10 Geburtstage
angezeigt werden.

das Geburtsdatum ist als Typ date gespeichert.

$sql = "select user from liste ORDER BY geburtsdatum DESC LIMIT 10

So bekomme ich zwar eine Liste, doch die ist nicht ganz das ware

Für einen Hinweis wäre ich sehr dankbar

Tobi

Report this message

#2: Re: kommende 10 Geburtstage anzeigen

Posted on 2008-01-29 13:11:27 by Christian Kirsch

Tobias Winkelhauser schrieb:
> ich möchte gerne eine Liste ausgeben in der die nächsten 10 Geburtstage
> angezeigt werden.
>
> das Geburtsdatum ist als Typ date gespeichert.
>
> $sql = "select user from liste ORDER BY geburtsdatum DESC LIMIT 10
>
> So bekomme ich zwar eine Liste, doch die ist nicht ganz das ware

diese Ortografie auch nicht, aber sei's drum.

>
> Für einen Hinweis wäre ich sehr dankbar
>

Tja, was soll man dazu sagen? Du verrätst nicht, was Dir an dieser Liste
nicht gefällt. Du verrätst nix über Deine Tabellenstruktur. Eigentlich
verrätst Du gar nix.

Deshalb nach einem Blick in die staubige Kugel: Wenn Du mit "nächste"
die Geburtstage meinst, die ab heute stattfinden, dann wäre es
vielleicht sinnvoll, erstmal zu überlegen, wie *Du* entscheidest, was
die nächsten sind. Ein einfaches (und falsches, weil es spätestens im
Dezember schief geht) Kriterium wäre, dass der Monat des Geburtstags
größer oder gleich dem aktuellen ist.

Mit MySQL hat das Ganze allerdings m.E. gar nix zu tun. Ich nehme für
sowas Apples iCal. Da muss ich nur auf den Kalender gucken und sehe, wer
in diesem Monat Geburtstag hat.

Report this message

#3: Re: kommende 10 Geburtstage anzeigen

Posted on 2008-01-29 13:48:21 by Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Report this message

#4: Re: kommende 10 Geburtstage anzeigen

Posted on 2008-01-30 21:02:07 by Sebastian Suchanek

Andreas Kretschmer schrieb:

> [...]
> IMHO ist eine Aussage, wer in den nächsten N Tagen Geburtstag hat,
> sinnvoller. Dazu berechnet man sich einfach das Alter der Leute heute
> und das Alter der Leute heute + N Tage und vergleicht.
> [...]

Hat sich eigentlich schon mal jemand Gedanken über ein halbwegs robustes
Alters-Berechnungs-Verfahren in MySQL gemacht? AGE() gibt's ja hier
leider nicht...


Tschüs,

Sebastian

Report this message

#5: Re: kommende 10 Geburtstage anzeigen

Posted on 2008-01-31 09:13:01 by Jonas Werres

> Für einen Hinweis wäre ich sehr dankbar

Ich fürchte, meine Lösung ist nicht die Eleganteste, aber bevor du sonst
gar keine Antworten bekommst:
Ich frage nie nächsten 10 in diesem Jahr ab (ORDER BY MONTH(...),
DAY(...) LIMIT) und zusätzlich die ersten 10 des kommenden Jahres. Das
ganze verbinde ich per Union und limitiere wieder auf 10.
Das zweite SELECT ist fast statisch, das dürfte wegen Caching nicht so
schmerzhaft sein, selbst wenn es meist völlig unnütz ist. Und sonst...
naja, es werden max. 10 Datensätze nachher wieder weggeworfen. Meistens
dürfte das zu überleben sein.
Einzige Situation in der das Probleme macht ist bei weniger als 10
Usern. Dann treten möglicherweise einige doppelt auf und/oder es sind
weniger als 10 Ergebnisse (wobei eins von beiden ja eh notwendig ist).

Report this message

#6: Re: kommende 10 Geburtstage anzeigen

Posted on 2008-01-31 14:35:47 by Daniel Fischer

Sebastian Suchanek!

> Hat sich eigentlich schon mal jemand Gedanken über ein halbwegs robustes
> Alters-Berechnungs-Verfahren in MySQL gemacht? AGE() gibt's ja hier
> leider nicht...

Wie wär's damit?

SELECT YEAR(today) - YEAR(birthday) - (DATEDIFF(today,
DATE_FORMAT(birthday, CONCAT(YEAR(today), '-%m-%d'))) < 0);


Gruß
Daniel

Report this message