Soltac Geschrieben 23. Oktober 2002 Geschrieben 23. Oktober 2002 Hallo, ich habe ein kleines aber feines Problem. Also ich muss in einem Report einen berechneten Wert einfügen, der Differenz zweier TimeStampfelder wiedergibt, jetzt würde ich gern wissen wie ich das lösen kann, da er ja den direkten Vergleich so nicht zulässt. mfg soltac
Saga Geschrieben 23. Oktober 2002 Geschrieben 23. Oktober 2002 Es wäre hilfreich fuer uns, wenn Du uns auch noch sagst, welche DB und welches Reporttool Du verwendest.
Soltac Geschrieben 23. Oktober 2002 Autor Geschrieben 23. Oktober 2002 Also ich arbeite mit einer Paradoxdatenbank unter Delphi. Über den Reportgenerator kann ich nichts genaueres sagen. Ist nicht von uns!!
Saga Geschrieben 23. Oktober 2002 Geschrieben 23. Oktober 2002 Originally posted by Soltac Also ich arbeite mit einer Paradoxdatenbank unter Delphi. Über den Reportgenerator kann ich nichts genaueres sagen. Ist nicht von uns!! Hmpf...Paradox ist nun so gar nicht mein Gebiet. Wo ziehst Du denn die Felder voneinander ab? In der SQL-Anweisung oder im Quellcode? Poste mal bitte die SQL-Anweisung oder Code. Und gib mal bitte ein Beispiel dafuer was derzeit passiert (Berechnung + Ergebnis) und wie es eigentlich aussehen soll.
Soltac Geschrieben 23. Oktober 2002 Autor Geschrieben 23. Oktober 2002 OK also derzeitig berechne ich im SQL des Reports: DATABASE:WTTEMP SELECT (08.12.2000 11:46:01 - 08.12.2000 11:50:02) (r_faktime.F4 - r_faktime.F3) *60 AS Differenz FROM R_faktime, also ich bekomme das Ergebnis 0,17 brauche aber das Ergebnis 0,04 (für 4 minuten)
Saga Geschrieben 23. Oktober 2002 Geschrieben 23. Oktober 2002 Originally posted by Soltac (08.12.2000 11:46:01 - 08.12.2000 11:50:02) (r_faktime.F4 - r_faktime.F3) *60 AS Differenz FROM R_faktime, also ich bekomme das Ergebnis 0,17 brauche aber das Ergebnis 0,04 (für 4 minuten) Ich gehe jetzt einfach mal davon aus, dass Du den Datumswert nicht fest hinterlegt hast sondern an der Stelle das entsprechende Datumsfeld der Tabelle steht. Gut, ich kenne mich nur auf der Sybase-Datenbank aus, aber was bestimmte Funktionen angeht sind die meistens in gleicher oder aehnlicher Form auch in anderen DB's vorhanden. Sybase bietet eine MINUTE(S)-Funktion an MINUTE( datetime-expr ) Returns a number from 0 to 59 corresponding to the minute component of the given date/time. MINUTES( datetime-expr ) Return the number of minutes since an arbitrary starting date and time. MINUTES( datetime-expr, datetime-expr ) Returns the number of whole minutes from the first date/time to the second date/time. The number may be negative. MINUTES( datetime-expr, integer-expr ) Add integer-expr minutes to the given date/time. If the integer-expr is negative, the appropriate number of minutes are subtracted from the date/time. mit der ich dieses Problem lösen würde. Sieh doch mal im Manual Deiner Datenbank nach, ob es dort nicht etwas vergleichbares gibt. Die SQL-Anweisung würde dann lauten: select minutes(datum1)-minutes(datum2), * from tabelle bzw. select minutes(datum1,datum2), * from tabelle analog zu dem Sybase-Beispiel. Tut mir leid, dass ich es Dir jetzt nicht direkt fuer Paradox erklaeren kann, aber vielleicht laesst es sich auch so loesen.
Soltac Geschrieben 23. Oktober 2002 Autor Geschrieben 23. Oktober 2002 kein Problem! ich bin ja froh das mir überhaupt jemand hilft! Aber ich habe mit deiner Lösung immernoch ein kleines Problem Die Stempelzeiten können auch mal einen Tag überschreiten. Das bedeutet: 16.10.2000 16:48:01angemeldet und 17.10.2000 10:12:23 abgemeldet Aber trotzdem vielen Dank Saga!!!
Saga Geschrieben 23. Oktober 2002 Geschrieben 23. Oktober 2002 Originally posted by Soltac Aber ich habe mit deiner Lösung immernoch ein kleines Problem Die Stempelzeiten können auch mal einen Tag überschreiten. Du meinst, weil Du dann negative Werte bekommst? Ohje, das ist knifflig. Ich schau mal, ob mir nochwas einfaellt. :confused:
Soltac Geschrieben 23. Oktober 2002 Autor Geschrieben 23. Oktober 2002 Also ich habs jetzt geschafft. Vielleicht interessierts ja jemanden: Wenn ich den Wert den ich zurückbekommen habe mit 1440(*60 *24) multipliziere bekomme ich zumindest den richtigen Wert(4,01) nur eben im falschen Format! Aber immerhin etwas oder!! :marine
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden