Seite 1 von 1
Zeitdifferenz ermitteln
Verfasst: Samstag 5. Dezember 2020, 22:39
von Duesentrieb
Hallo,
aus einer Datenbank frage ich den Zeitstempel ab (Timestamp).
Aus der aktuellen Zeit möchte ich dann die Zeitdifferenz berechnen.
Hier mein Ansatz der leider nicht klappt (Ich weis es liegt am Format aber ich finde keine Lösung):
print: ("Zeit in der Datenbank: ", str(data(4))
Abfragezeit = (data(4))
Aktuelle_Zeit = (time.time())
Vergangen = Aktuelle_Zeit - Abfragezeit
Re: Zeitdifferenz ermitteln
Verfasst: Samstag 5. Dezember 2020, 22:50
von Sirius3
Was klappt nicht? Fehlermeldung?
Was ist data?
Da sind offensichtliche Programmierfehler drin.
Und einige Klammerpaare sind zu viel. Variablennamen schreibt man komplett klein.
Re: Zeitdifferenz ermitteln
Verfasst: Sonntag 6. Dezember 2020, 08:56
von Duesentrieb
data(4) ist die Abfrage aus der mysql Datenbank. Ich habe nur das Wesentliche hier aufgeführt.
o.k. Klammern kann ich weglassen. Ändert aber auch nichts
Über die Print Ausgabe erhalte ich den Wert auch im richtigen Format: 2020-12-05 22:55:52
Die Fehlermeldung lautet:
Vergangen = Aktuelle_Zeit - Abfragezeit
TypeError: unsuported operand type(s) for -: 'float' and 'datetime.datetime'
Re: Zeitdifferenz ermitteln
Verfasst: Sonntag 6. Dezember 2020, 09:16
von sparrow
Die Fehlermeldung ist doch sehr aussagekräftig und in diesem Fall ausschlaggebend, denn es kann niemand wissen, welchen Typ deine Werte haben.
time.time() gibt eine Gleitkommazahl zurück. Aus der Datenbank kommt ein datetime.datetime Objekt.
Du solltest also für Aktuelle_Zeit (richtig: aktuelle_zeit; besserer Name: now) ein datetime.datetime Objekt erstellen. Schau die mal die Dokunentation dazu an. Da steht, wie man das für den aktuellen Zeitpunkt tut.
Oh, und du hast nicht das wesentliche mitgeteilt, sonder irgendwas zusammengebastelt. Das ist immer eine schlechte Idee, wenn man Hilfe sucht. Du fährst ja auch nicht mit irgend einem Auto in die Werkstatt, sondern mit dem, das kaputt ist. "data(4)" stehr so sicher nicht in deinem Code
Re: Zeitdifferenz ermitteln
Verfasst: Sonntag 6. Dezember 2020, 10:13
von Duesentrieb
Hallo und Danke erst einmal!
Mit dem Auto hast du sicher Recht. Aber ich gehe ja nicht in die Werkstatt um das Auto abzugeben sondern sage auch dass die Heizung nicht funktioniert
gerne kann ich euch den Restcode mitteilen. Ja, ich weis das ist im Auge eines routinierten Programmierers sicher sicher voller Fehler.
Aber für meine Zwecke, als Leihe der ab und zu mal was neues versucht, reicht das völlig aus:
connection = mdb.connect(host="192.168.0.120", user="root", passwd="", db="Zisterne_Hof")
cursor = connection.cursor()
cursor.execute("SELECT * FROM Status")
result = cursor.fetchall()
for data in result:
print: ("Zeit in der Datenbank: ", str(data[4])
Abfragezeit = (data[4])
Aktuelle_Zeit = (time.time())
Vergangen = Aktuelle_Zeit - Abfragezeit
cursor.close()
Re: Zeitdifferenz ermitteln
Verfasst: Sonntag 6. Dezember 2020, 10:23
von Sirius3
Und plötzlich werden aus runden Klammern eckige. Das print: ist immer noch ein Syntaxfehler. Also das ist immer noch nichr der Code, der bei Dir die Fehlermeldung produziert.
Re: Zeitdifferenz ermitteln
Verfasst: Sonntag 6. Dezember 2020, 16:09
von Duesentrieb
ja, ja. Kommt vom Abtippen hier her...
sparrow hat doch schon die Lösung aufgezeigt
Re: Zeitdifferenz ermitteln
Verfasst: Sonntag 6. Dezember 2020, 16:30
von pillmuncher
@Duesentrieb: Da gibt es eine neue, experimentelle Hochtechnologie, ich glaube sie heißt Copy & Paste…
Re: Zeitdifferenz ermitteln
Verfasst: Sonntag 6. Dezember 2020, 16:51
von Duesentrieb
geht leider nicht immer wenn ich über VNC auf einen Raspberry zugreife
Re: Zeitdifferenz ermitteln
Verfasst: Sonntag 6. Dezember 2020, 17:36
von pillmuncher
Re: Zeitdifferenz ermitteln
Verfasst: Sonntag 6. Dezember 2020, 19:57
von __deets__
Und es gibt ja auch noch scp und putty. Soviel Mühe darf schon sein, schließlich will man hier ja seine Zeit nicht damit verschwenden, rote Heringe zu angeln.
Re: Zeitdifferenz ermitteln
Verfasst: Montag 7. Dezember 2020, 16:27
von DeaD_EyE
Duesentrieb hat geschrieben: ↑Sonntag 6. Dezember 2020, 16:51
geht leider nicht immer wenn ich über VNC auf einen Raspberry zugreife
Wenn man nur einen Hammer hat, dann ist jedes Problem ein Nagel.
VNC ist das falsche Werkzeug für diese Aufgabe.