Re: Bug im Datumssystem? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 23.Februar.2005, 11:35.
    Re: Bug im Datumssystem?

      Uffz, die Datums/Zeitroutine ist wirklich wirklich sehr sehr kompliziert, d.h. kann gut sein dass das ein Fehler ist, da Du es detailliert beschrieben hast, wird sich das schnell finden lassen...

      < Da ich aber schon mehrmals über ähnliche Ungereimtheiten gestolpert bin, denke ich, ist es vielleicht ganz nützlich, sich mal näher mit dieser Erscheinung zu beschäftigen.
      

      Kannst D das auch genauer erklären, also gibts noch an anderer Stelle Fehler? Oder dreht sichs immer um dieselbe Sache?


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Mattias (110 Beiträge) am Mittwoch, 23.Februar.2005, 06:04.
    Bug im Datumssystem?

      Hallo zusammen,

      ich habe mich immer gewundert, warum meine Statistik-Datenbank immer sonntags verrückt spielt. Als ich der Sache dann mal nachgegangen bin, habe ich Folgendes festgestellt:

      Um einen Besuch unter das jeweils aktuelle Datum einzutragen, vergleiche ich zuerst den Tag des letzten Eintrags mit dem heutigen Tag, 0:00 Uhr und schreibe so lange einen Tag dazu, bis der letzte Tag in der DB nicht mehr kleiner ist als der heutige, 0:00 Uhr.

      $Jetzt = datum( "jetzt", "intern" );
      $heute0 = datum( "jetzt", "Tag0.Monat0.Jahr" );
      $Heute0 = datum( $heute0, "intern" );
      

      get "Id==#", "stat";
      while( $Tag lt $Heute0 )
      {
      $gesamt = $Gesamt;
      $Tag_neu = datum( "$Tag+1", "intern" );
      put ["Tag", $Tag_neu, "Gesamt", $gesamt], "stat";
      get "Id==#", "stat";
      }
      

      Bis zum Samstag funktioniert das auch ganz gut, aber am Sonntag nimmt er als $Heute0 den Wert "2005.02.27,00:00.00#7". Bei der darauf folgenden Abfrage holt er aber den selben Tag als "2005.02.27,00:00.00#0" aus der DB, und da dieser Tag um eine Winzigkeit kleiner ist als der mit Perl bestimmte heutige Tag, schreibt er noch einen Tag dazu.

      Bei jedem neuen Seitenbesuch holt er jetzt den Stand von Montag ( = 0 ), addiert 1 und setzt den Wert beim Sonntag ein. Die Folge davon ist, dass laut dieser Statistik sonntags - und zwar nur sonntags! - nie mehr als ein Besucher gezählt wird.

      Ich bestimme mir jetzt $Heute0 = substr( $Jetzt, 0, 10 ) und mache es mit dem DB-Wert genauso. Der Fehler dürfte sich in diesem einen Fall dann wohl erledigt haben. Da ich aber schon mehrmals über ähnliche Ungereimtheiten gestolpert bin, denke ich, ist es vielleicht ganz nützlich, sich mal näher mit dieser Erscheinung zu beschäftigen.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 23.Februar.2005, 11:35.
    Re: Bug im Datumssystem?

      Uffz, die Datums/Zeitroutine ist wirklich wirklich sehr sehr kompliziert, d.h. kann gut sein dass das ein Fehler ist, da Du es detailliert beschrieben hast, wird sich das schnell finden lassen...

      < Da ich aber schon mehrmals über ähnliche Ungereimtheiten gestolpert bin, denke ich, ist es vielleicht ganz nützlich, sich mal näher mit dieser Erscheinung zu beschäftigen.
      

      Kannst D das auch genauer erklären, also gibts noch an anderer Stelle Fehler? Oder dreht sichs immer um dieselbe Sache?

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 1.März.2005, 11:57.
    Re: Bug im Datumssystem?

      Hab mir das jetzt mal genauer durchdacht. Wieso machst Du eigentlich:

      $heute0 = datum( "jetzt", "Tag0.Monat0.Jahr" );
      $Heute0 = datum( $heute0, "intern" );
      

      ?

      Warum nicht:

      $heute0 = datum( "jetzt", "Tag0.Monat0.Jahr" );
      $Heute0 = datum( "jetzt", "intern" );
      

      ?

      Dann müsste das Ergebnis doch auf jeden Fall stimmen?

     Antworten

    Beitrag von Mattias (110 Beiträge) am Dienstag, 15.März.2005, 15:35.
    Re: Bug im Datumssystem?

      Sorry, komme erst jetzt dazu zu antworten.

      > Warum nicht:
      >
      > $heute0 = datum( "jetzt", "Tag0.Monat0.Jahr" );
      > $Heute0 = datum( "jetzt", "intern" );
      

      Das $Heute0 nehme ich dazu, um exakt die Zeit heute 0:00 Uhr zu erhalten, damit ich den Tag X 0:00 Uhr damit vergleichen kann. Wenn ich das nicht machen würde, wäre heute immer noch größer als heute 0:00 Uhr, und er würde mir wieder den morgigen Tag reinsetzen, denn der ist nicht mehr größer. Mir ist noch nichts Besseres dazu eingefallen - wozu auch, klappt doch ganz gut.

      Die "Ungereimtheiten" beziehen sich nur auf diese zwei verschiedenen Sonntage (einmal #0 und einmal #7), halt mit unterschiedlichen Auswirkungen. Ich hatte nur eine davon beschrieben (mit der ich ja mittlerweise fertig geworden bin), aber möglicherweise liefert das tatsächlich eine Erklärung für das eine oder andere "mysteriöse" Verhalten von Abfragen o.ä.

      Hab mir gerade einen bestimmten sehr langen Thread reingezogen... Also bitte nicht als Gemotze auffassen, war nur als Denkanstoß gedacht.

     Antworten


     
 Liste der Einträge von 25500 bis 25650:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!