datetime Format ungültig

Begonnen von Sidey, 31 März 2023, 22:30:14

Vorheriges Thema - Nächstes Thema

Sidey

Hi,

ich habe gerade gesehen, dass ich seit dem 26.03 (Sonntag) Logmeldungen erhalte, dass das datetime Format ungültig ist:

executing 72 generated 7 errors [for Statement "INSERT INTO history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (?,?,?,?,?,?,?)"] at ./FHEM/93_DbLog.pm line 2998.
2023.03.26 01:00:02 2: DbLog LoggingDB - Error table history - DBD::mysql::st execute_array failed: Incorrect datetime value: '2023-03-26 01:00:01' for column `fhem`.`history`.`TIMESTAMP` at row 1 [err was 1292 now 2000000000]


Seit dem laufen auch alle Meldungen in den Cache und nicht mehr in die Datenbank.

Folgende DB Log Version ist im Einsatz:
93_DbLog.pm               27111 2023-01-23 19:06:28Z DS_Starter


Ich hatte zuerst die Zeitumstellung im Verdacht, aber die ist ja nicht um 1 Uhr gewesen.

Grüße Sidey

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

DS_Starter

Zeitumstellung glaube ich nicht. Kann und konnte bei mir keine Probleme damit feststellen und ich denke dann gäbe es viel mehr Meldungen dieser Art.

Das datetime value: '2023-03-26 01:00:01' sieht aber auch ok aus, es sei denn das "Leerzeichen" ist keins (etwas weit hergeholt).

Setze erstmal folgende Attr:

insertMode 1
commitMode basic_ta:off

Damit sollten die Daten (außer die Problemsätze) in die DB laufen.
Dann muß man mal sehen ...
ESXi@NUC+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

Der in der Fehlermeldung zitierte Error 1292 sagt mir irgendwas, das muss aber einige Jahre her sein, dass ich über das Problem gestolpert bin. Damals wollte die Datenbank den Timestamp als string partout nicht in ein Datenbankfeld vom Type timestamp übernehmen wollte. Erst nach einer Konvertierung beim Insert war dann Ruhe.
Aber warum das hier jetzt "plötzlich" auftritt, erschließt sich mir nicht. Hattest Du auf Betriebssystemebene ein Update Deiner mysql Installation?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

Habe gerade etwas gegoogelt.
Die Quellen die ich bisher gelesen habe deuten darauf hin dass die DB z.B. "YYYY-DD-MM" erwartet, aber "YYYY-MM-DD" vom Programm geliefert wird.
Der Hinweis von betateilchen scheint mir auch eine heiße Spur zu sein ...
ESXi@NUC+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

Sidey

Das mit dem Format hatte ich auch gefunden. Sicherer wäre es wohl, das ganze als String einzulesen und als Date, vermutlich eine Zahl, zu übergeben:


https://sebhastian.com/mysql-incorrect-datetime-value/


Der Cache ist durch mein experimentieren leider vor dem Speichern flöten gegangen, aus diesem Grund habe ich den problematischen Datensatz nicht mehr, aber ich denke es war der 1. aus dem Log.


Im Moment kommen keine Fehler mehr. FHEM habe ich nicht aktualisiert, mein Datenbank Container wurde auch am 2023-03-05 erzeugt, also lange vor dem Fehler.


Grüße Sidey

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker