SqlLite einzelne Datensätze anzeigen und löschen (Zeitbereich)

Begonnen von jailbreaker07, 06 Juni 2017, 17:52:16

Vorheriges Thema - Nächstes Thema

jailbreaker07

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

DS_Starter

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';
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

jailbreaker07

Vielen dank für die schnelle Antwort, ich habe das so im Terminal eingegben. Jedoch reagiert das Terminal nicht mehr.....

danke

Gruß

Thorsten

DS_Starter

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.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

jailbreaker07

Hallo, ich mache das jetzt mit dem DbRep-Modul, das ist das was ich brauche.

Danke

Gruß

Thorsten