Zeitdifferenz ermitteln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Duesentrieb
User
Beiträge: 52
Registriert: Sonntag 16. März 2014, 17:14

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
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Was klappt nicht? Fehlermeldung?
Was ist data?
Da sind offensichtliche Programmierfehler drin.
Und einige Klammerpaare sind zu viel. Variablennamen schreibt man komplett klein.
Duesentrieb
User
Beiträge: 52
Registriert: Sonntag 16. März 2014, 17:14

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'
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

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
Duesentrieb
User
Beiträge: 52
Registriert: Sonntag 16. März 2014, 17:14

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()
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
Duesentrieb
User
Beiträge: 52
Registriert: Sonntag 16. März 2014, 17:14

ja, ja. Kommt vom Abtippen hier her...

sparrow hat doch schon die Lösung aufgezeigt
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@Duesentrieb: Da gibt es eine neue, experimentelle Hochtechnologie, ich glaube sie heißt Copy & Paste…
In specifications, Murphy's Law supersedes Ohm's.
Duesentrieb
User
Beiträge: 52
Registriert: Sonntag 16. März 2014, 17:14

geht leider nicht immer wenn ich über VNC auf einen Raspberry zugreife
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

In specifications, Murphy's Law supersedes Ohm's.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1020
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

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.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten