[MySQL 4.1] Alter berechnen

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

  • [MySQL 4.1] Alter berechnen

    Hi,

    ich würde gerne das Alter berechen direkt aus Mysql berechnen

    Code:
    SELECT profiles.*, rost_birthdate,
    (to_days(CURRENT_DATE) - to_days(rost_birthdate))/365 isAlter FROM profiles 
    			LEFT JOIN teams ON rost_ref_id = team_id WHERE team_url_value='herren'
    liefert Fließkommazahlen 33.7 oder so!

    Deshal dachte ich mir folgendes
    Code:
    SELECT profiles.*, rost_birthdate,
    int((to_days(CURRENT_DATE) - to_days(rost_birthdate))/365) isAlter FROM profiles 
    			LEFT JOIN teams ON rost_ref_id = team_id WHERE team_url_value='herren'
    Das geht leider nicht.
    Bitte um Hilfe
    derTrallala
    Manchmal verliert ma eben ... und manchmal gewinnen die Anderen

  • #2
    Hallo,

    ich lasse mir so das Alter ausgeben:

    PHP-Code:
    $abfrage "SELECT TIMESTAMPDIFF(YEAR, SPALTENNAME, CURDATE()) as diff"

    Grüße von Sven

    Kommentar


    • #3
      hi,
      vielleicht hilft dir das hier

      PHP-Code:
      <?PHP
      # !! Hinweis !!
      # Das Datumsformat muß je TT.MM.JJJJ sein

      function alter_berechnen($datum1,$datum2) {
        list (
      $t1$m1$j1) = split('[.]'$datum1);
        list (
      $t2$m2$j2) = split('[.]'$datum2);
        if (
      $j1 != 0  or ($j1 100 == and $j1 400 != 0)){
          
      $tf28;}
            else {
          
      $tf 29;
        }
        
      $xtage = array( 031$tf31303130313130313031);
        if (
      $t2 $t1){
          
      $t2 += $xtage[(int)$m1];
          
      $m1 += 1;
        }
        if (
      $m2 $m1){
          
      $m2 += 12;
          
      $j1 +=1;
        }
        
      $tage  $t2 $t1;
        
      $monate $m2 $m1;
        
      $jahre  $j2 $j1;
        
      $alter  = array('j'=>$jahre'm'=>$monate't'=>$tage);
        return 
      $alter;
      }

      # Beispiel:
      $alter alter_berechnen('12.10.1969','15.08.2005');
      echo 
      "Das Alter beträgt : ";
      echo 
      $alter['j'] ." Jahre + "$alter['m'] ." Monate + "$alter['t'] ." Tage <br>";
      ?>
      LG Heiko

      Kommentar


      • #4
        wenn ich mich nicht Ihre, dann würde ich mich so ausdrücken
        PHP-Code:
        SELECT YEAR(NOW())-YEAR(rost_birthdate)+
        if((
        MONTH(NOW())-MONTH(rost_birthdate))<0,-1,
        if((
        DAY(NOW())>DAY(rost_birthdate)) and (MONTH(NOW())-MONTH(rost_birthdate)=0),-1,0)) as Alter 
        Slava
        bituniverse.com

        Kommentar


        • #5
          @Sven: TIMESTAMPDIFF() gibt es afaik erst seit Version 5.

          Kommentar


          • #6
            Original geschrieben von onemorenerd
            @Sven: TIMESTAMPDIFF() gibt es afaik erst seit Version 5.
            ausserdem ist diese function nicht wirklich zum alterberechnung gut, da sie ein wenig spinnt.
            Slava
            bituniverse.com

            Kommentar


            • #7
              Du bekommst 33.7 aber möchtest 33 haben oder was?
              Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
              var_dump(), print_r(), debug_backtrace und echo.
              Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
              Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
              Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

              Kommentar


              • #8
                Original geschrieben von Shurakai
                Du bekommst 33.7 aber möchtest 33 haben oder was?
                die berechnung die er macht, ist algemein nicht für Alterberechnung nutzbar und es geht nicht nur um nachkomastelle, die leicht mit mysql als auch php lösbar ist, sondern mehr um 365 Tage, die in keinem fall in eine Geburtstag berechnung passen.
                Slava
                bituniverse.com

                Kommentar

                Lädt...
                X