FHEM Forum

FHEM => Sonstiges => Thema gestartet von: jailbreaker07 am 06 Juni 2017, 17:52:16

Titel: SqlLite einzelne Datensätze anzeigen und löschen (Zeitbereich)
Beitrag von: jailbreaker07 am 06 Juni 2017, 17:52:16
Hallo,

ich möchte gerne aus der Datenbank einzelne Datensätze löschen, zb von 04.06.2017 17 Uhr bis 04.06.2017 18 Uhr

Mit den unten stehenden Befehl lese ich alle Readings mit den Reading kwh aus, wie kann ich da noch einen Zeitbereich einbauen?

(Den Befehl Select habe ich nur zum ausprobieren genommen.... )

sqlite> select * from history where DEVICE='Stromzaehler' and READING='kWh';

vielen Dank

Gruß

Thorsten
Titel: Antw:SqlLite einzelne Datensätze anzeigen und löschen (Zeitbereich)
Beitrag von: DS_Starter am 06 Juni 2017, 18:10:23
sqlite> select * from history where DEVICE='Stromzaehler' and READING='kWh' and TIMESTAMP>'2017-06-04 17:00:00' and TIMESTAMP<'2017-06-04 18:00:00';
Titel: Antw:SqlLite einzelne Datensätze anzeigen und löschen (Zeitbereich)
Beitrag von: jailbreaker07 am 06 Juni 2017, 18:21:09
Vielen dank für die schnelle Antwort, ich habe das so im Terminal eingegben. Jedoch reagiert das Terminal nicht mehr.....

danke

Gruß

Thorsten
Titel: Antw:SqlLite einzelne Datensätze anzeigen und löschen (Zeitbereich)
Beitrag von: DS_Starter am 06 Juni 2017, 18:29:20
Dein Anliegen kannst du auch selektiv, so wie du es wünscht, vom DbRep-Modul erledigen lassen.
In den Attributen reading, device, timestamp_begin, timestamp_end gibst du deine Einschränkungen ein und lässt es laufen.
Titel: Antw:SqlLite einzelne Datensätze anzeigen und löschen (Zeitbereich)
Beitrag von: betateilchen am 07 Juni 2017, 07:00:09
Zitat von: jailbreaker07 am 06 Juni 2017, 18:21:09
Vielen dank für die schnelle Antwort, ich habe das so im Terminal eingegben. Jedoch reagiert das Terminal nicht mehr.....

Es kommt darauf an, wie groß die Datenbank(tabelle) ist. Das kann schon mal eine Stunde oder länger dauern, wenn sehr viele Datensätze vorhanden sind. Es muss schließlich die gesamte Tabelle von Anfang bis Ende durchlaufen und jeder Datensatz einzeln darauf geprüft werden, ob die Bedingung erfüllt ist.
In dieser Zeit kann das Terminal nicht reagieren, weil es beschäftigt ist.
Titel: Antw:SqlLite einzelne Datensätze anzeigen und löschen (Zeitbereich)
Beitrag von: jailbreaker07 am 07 Juni 2017, 10:50:27
Hallo, ich mache das jetzt mit dem DbRep-Modul, das ist das was ich brauche.

Danke

Gruß

Thorsten