
Ich habe ein Programm geschrieben, mit dem erfasst wird, wann ein RFID-Tag (bzw. Gerät mit Tag) ausgeliehen wird. In einer Datenbank wird dann gespeichert, unter welchem Benutzeraccount welcher RFID-Tag ausgeliehen wird. Dazu wird auch das aktuelle Datum & Zeit festgehalten (Mit datetime.now()).
Nun möchte ich herausfinden, wieviele RFID-Tags zwischen 0 und 4 Uhr ausgeliehen wurden. Meine Überlegung dazu war, dass ich erst einmal alle Einträge aus der Datenbank zähle und dann nur die herausfiltere, wo die Stundenzahl >= 0 und <4 ist. (Anschließend will ich noch wissen wie viele von 4-8h, von 8-12h, ...)
Das hat mit anderen Beispielen auch super funktioniert.
Mein Problem ist nun, dass ich die Stundenzahl nicht aus den einzelnen Daten bekomme, bzw. mir da komplett der Ansatz fehlt.
Meine Programmierung sieht momentan wie folgt aus:
data1 = ([], [])
tageszeit1 = 0
tageszeit2 = 4
for x in range(1):
vals1 = db_session.query(func.count(Ausleihen.Entliehen_am)) \
.filter(Ausleihen.Entliehen_am >= tageszeit1) \
.filter(Ausleihen.Entliehen_am < tageszeit2)
data1[x].append(int(vals1[0][0]))
Jetzt muss ich an den blau markierten Stellen ja noch sagen, dass ich da jeweils nur die Stunde haben will und nicht das ganze Datum, aber wie?
Bei datetime.now() geht das ja einfach, indem man ein ".hour" dahintersetzt, da wird mir hier aber (logischerweise) nur angezeigt, dass das nicht funktioniert.
Vielen Dank schon einmal im Voraus!