[MySQL 4.1] Alter berechnen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [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

    Comment


    • #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

      Comment


      • #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

        Comment


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

          Comment


          • #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

            Comment


            • #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.

              Comment


              • #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

                Comment

                Working...
                X