datums differenzen mit zwei Werten

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

  • datums differenzen mit zwei Werten

    Hallo alle zusammen,

    habe da mal nen problem: ich möchte aus einer Datenbank zwei Datumswerte mit dem Typ DATE voneinander abziehen. bin seit zwei tagen auf ner suche nach ner Lösung dazu habe auch selbst schon was hinbekommen aber ich glaube ich brauche vielleicht noch nen kleinen tip von euch wie ich das hinbekommen könnte.
    Hier ist mein Ansatz:
    PHP-Code:
    $abfrage mysql_query("SELECT ID, bis, von, (YEAR(bis) -YEAR(von)) -(RIGHT(bis, 5) <RIGHT(von, 5)) 
    AS diff FROM strom WHERE ID='1'"
    );
    printf($abfrage['diff']); 
    bei dieser abfrage wird nichts ausgegeben komm aber nicht auf den Fehler.
    Der Sinn dieser Abfrage soll sein das man die Differenz an Tagen bzw. Monaten bekommt um dann weiter mit dem Ergebnis rechnen zu können.

    mfg

    Y1302
    _______________________________________
    jeder weg führt ans Ziel nur ohne Ziel stimmt jeder Weg

    bye

    y1302

  • #2
    http://de3.php.net/manual/de/functio...etch-array.php

    Kommentar


    • #3
      http://www.mysql.de/doc/de/Date_and_time_functions.html

      Kommentar


      • #4
        [MySQL 4.0]

        Erstmal schönen Dank für die schnelle antwort.

        Aber wenn ich in meine beiden spalten (bis, von) voneinander abziehen will bekomme ich in dem Quelltext keine Ausgabe. Könnte mir jemand einen Ansatz geben? ich habs mit mysql_query("SELECT bis, von, DATE_SUB('bis' - 'von' DAY) FROM tabelle WHERE ID='1'");

        mfg
        y1302
        _______________________________________
        jeder weg führt ans Ziel nur ohne Ziel stimmt jeder Weg

        bye

        y1302

        Kommentar


        • #5
          Re: [MySQL 4.0]

          Original geschrieben von y1302
          bekomme ich in dem Quelltext keine Ausgabe.
          lies die antwort von proggy noch mal.

          nur mysql_query() alleine reicht nicht.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Hallo wahsaga

            aber der query ansatz ist ok?

            cu
            y1302
            _______________________________________
            jeder weg führt ans Ziel nur ohne Ziel stimmt jeder Weg

            bye

            y1302

            Kommentar


            • #7
              Original geschrieben von y1302
              aber der query ansatz ist ok?
              das wirst du ja dann herausfinden, wenn du

              a) eine ordentliche fehlerbehandlung machst (wie sie hier im forum schon zig-fach beschrieben wurde), und
              b) dann das ergebnis der abfrage ordentlich auswertest (link von proggy)
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Hallo wahsaga

                der Queryteil wo berechnet werden soll ist falsch. denn den hätte ich auch so schreiben können.

                PHP-Code:
                $abfrage mysql_query("SELECT bis, von FROM tabelle WHERE ID='1'");

                //dieser teil ist dann die erweiterung für den ARRAY 'bis' und 'von'
                $ergeb mysql_fetch_array($abfrage);

                //hier habe ich dann gerechnet 
                $diff = (($ergeb['bis'])+($ergeb['von']));
                printf($diff); 
                als ergebnis kam 4006 weil in 'bis' der Wert 2003-08-01 und in 'von' der Wert 2003-10-10 steht und er jeweils die Jahre zusammen zählt. beim subtrahieren kommt dann logischerweise 0 raus. Warum berechnet er nicht auch die Monate und Tage?

                mfg
                y1302
                _______________________________________
                jeder weg führt ans Ziel nur ohne Ziel stimmt jeder Weg

                bye

                y1302

                Kommentar


                • #9
                  was für ein ergebnis willst du denn jetzt eigentlich erreichen?
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    @wahsaga
                    ich will die Differenz in Tagen bzw. in Monaten zwischen den beiden Spalten 'bis' und 'von' ermitteln. Das ganze ist zum ablesen vom Stromzähler und zur kontrolle. ich will dann halt auch berechnen wieviel strom am Tag, Stunde und Monat verbraucht wurde.

                    mfg
                    y1302
                    _______________________________________
                    jeder weg führt ans Ziel nur ohne Ziel stimmt jeder Weg

                    bye

                    y1302

                    Kommentar


                    • #11
                      Original geschrieben von y1302
                      ich will die Differenz in Tagen bzw. in Monaten zwischen den beiden Spalten 'bis' und 'von' ermitteln.
                      und wieso glaubst du, dass sich dies berechnen liesse, in dem du die jahre von einander abziehst, und dann noch ein bisschen was ...?
                      das ist doch mathematisch vollkommener unfug.

                      schau dir auf http://www.mysql.de/doc/de/Date_and_time_functions.html mal die funktion TO_DAYS() an, die sollte dir weiterhelfen.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        hallo @all

                        habe mir die Funktion TO_DAYS angeschaut und stundenlang probiert aber es haut einfach nicht hin. habe die Spalte in den klammern angegeben mit und ohne gänsefüsschen mal rechnet er irgendwas mal nicht mal resource#5 und so weiter. weiss echt nicht mehr weiter. kann mir da nicht mal jemand helfen wie wo was hinkommt obwohl es schon zig mal im Forum beschrieben wurde, habe auch danach gesucht aber den richtigen weg konnte ich bisher nicht erkennen.



                        mfg

                        y1302
                        _______________________________________
                        jeder weg führt ans Ziel nur ohne Ziel stimmt jeder Weg

                        bye

                        y1302

                        Kommentar


                        • #13
                          @wahsaga
                          @all

                          Nach etlichen verzweifelten versuchen mit den TO_DAYS (ging nich aber mit date, strtotime und mktime) und berechnungen und die daraus resultierenden Ergebnisse, habe ich das ganze doch noch hinbekommen und kann jetzt mein Stromverbrauch pro tag berechnen.
                          Hier nun das ergebniss:
                          PHP-Code:
                          //Abfrage
                          $sql mysql_query("SELECT * FROM tabelle WHERE ID=1");
                          //Ergebnis der Abfrage
                          $ergeb mysql_fetch_array($sql);
                          //Ergebnis der ARRAYS in Variablen schreiben
                          $zahl1 = ($ergeb['neu']);
                          $zahl2 = ($ergeb['alt']);
                          //Quelldatum zerteilen in tag, monat und jahr
                          $tag1 date('d'strtotime($ergeb['von']));
                          $mon1 date('m'strtotime($ergeb['von']));
                          $jahr1 date('Y'strtotime($ergeb['von']));
                          //Zieldatum zerteilen in tag, monat und jahr
                          $tag2 date('d'strtotime($ergeb['bis']));
                          $mon2 date('m'strtotime($ergeb['bis']));
                          $jahr2 date('Y'strtotime($ergeb['bis']));
                          //Formatierung ins PHP Format
                          $date1 mktime(12,0,0$mon1,$tag1,$jahr1);
                          $date2 mktime(12,0,0$mon2,$tag2,$jahr2);
                          //Datumsdifferenz berechnen
                          $diff = ($date2-$date1);
                          //Berechnung der Differenz in Tagen + 1 Tag für die inklusive
                          $tage floor(($diff/60/60/24)+1);
                          #printf($diff);
                          $dat1 date('d.m.Y'strtotime($ergeb['von']));
                          $dat2 date('d.m.Y'strtotime($ergeb['bis']));
                          //Zählerstandsdifferenz
                          $stand = ($zahl1 $zahl2);
                          // KW/h pro Tag berechen
                          $kwh = ($stand $tage);

                          //Ausgabe
                          printf ($zahl2);
                          echo
                          "<br>";
                          printf ($zahl1);
                          echo
                          "<br>";
                          printf ($stand);
                          echo
                          "<br>";
                          printf ($dat2);
                          echo
                          "<br>";
                          printf ($dat1);
                          echo
                          "<br>";
                          echo
                          "<br>";
                          printf ($tag1);
                          echo
                          "<br>";
                          printf ($mon1);
                          echo
                          "<br>";
                          printf ($jahr1);
                          echo
                          "<br>";
                          echo
                          "<br>";
                          printf ($tag2);
                          echo
                          "<br>";
                          printf ($mon2);
                          echo
                          "<br>";
                          printf ($jahr2);
                          echo
                          "<br>";
                          echo
                          "<br>";
                          printf ($tage);
                          echo
                          "<br>";
                          //Ausgabe der KW/h pro Tag
                          printf ($kwh);
                          echo
                          "<br>"
                          sicherlich ist das ergebniss vielleicht ein bisschen kompliziert aber für mich dann doch logisch nachvollziehbar. auf jeden fall funzt es.

                          beste grüße
                          y1302
                          _______________________________________
                          jeder weg führt ans Ziel nur ohne Ziel stimmt jeder Weg

                          bye

                          y1302

                          Kommentar

                          Lädt...
                          X