Geburtsdatum in timestamp = Alter per SQL

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Geburtsdatum in timestamp = Alter per SQL

    Hallo,

    ich speichere das Geburtsdatum meiner User als Timestamp in der Datenbank. Jetzt bin ich gerade dabei eine erweiterte Membersuche zu bauen, stehe jedoch vor einem (Denk?) Problem.

    Der Besucher der Seite wählt also für die Suche aus: Alle anzeigen zwischen 18 und 20 Jahren. Nur wie bringe ich ihm das bei damit die Ausgabe auch korrekt ist?

    Hätte schon überlegt einen Cronjob einzurichten der einmal täglich alle Datensätze durchgeht und das Alter mittels simplen Script:

    PHP-Code:
    $alter $today $seconds_birth;
    $alter_jahre date("Y",$alter) - 1970
    aktualisiert. Gibts da aber nicht ne andere Lösung damit ich das gleich per SQL rausfiltern kann ohne Workaround?

    Jemand Tipps parat?

    PHP-Code:
    $abfrage "SELECT uid, uname FROM system_user WHERE geburtsdatum=???"

  • #2
    Re: Geburtsdatum in timestamp = Alter per SQL

    UNIX Timestamp oder MySQL Timestamp?
    btw. such mal das war schon häufiger...

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Re: Geburtsdatum in timestamp = Alter per SQL

      ich würde TO_DAYS() verwenden, von heute minus geburtsdatum muss zwischen 18*365 und 20*365 liegen.

      ist natürlich etwas grob, weil es keine schaltjahre berücksichtigt, und deshalb in einzelfällen um ca. 4 bis 5 tage daneben liegen kann. aber da kannst du dir ja mal was überlegen, wenn du die auch noch berücksichtigen willst ...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        *gähn*
        Code:
        year(curdate()) - year(stempel) - (0>
          if (
            month(curdate()) != month(stempel),
            month(curdate()) - month(stempel),
            dayofmonth(curdate())-dayofmonth(stempel)
          )
        )
        oder
        Code:
        year(curdate()) - year(stempel) - (
          month(curdate())*31 + dayofmonth(curdate())
          < month(stempel)*31 + dayofmonth(stempel)
        )
        Zuletzt geändert von Titus; 09.09.2005, 13:02.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar

        Lädt...
        X