NEWS
gelöst: mysql query liefert falsche Werte bei Datum < xy
-
Hallo,
ich habe ein Problem:SELECT val AS wert, ts AS datum \ FROM iobroker.ts_number \ WHERE id=(SELECT id FROM iobroker.datapoints WHERE NAME='javascript.0.haus.Heizung.Kueche.Temperatur') \ AND ts > UNIX_TIMESTAMP('2020-02-02 05:00:00')*1000 \ LIMIT 1liefert korrekt: 1580616720008 = 02.02.2020 - 05:12:00
jedoch:
AND ts < UNIX_TIMESTAMP('2020-02-02 06:00:00')*1000 \liefert falsch: 1578014400020 = 03.01.2020 - 02:20:00
es sollte doch ein Datum >= 02.02.2020 05:12 geliefert werden!Ich bin sicher, jemand kennt das Problem und wäre sehr dankbar für die Lösung.
-
@hanss sagte in Hilfe: mysql query liefert falsche Werte bei Datum < xy:
/1000 kann nicht richtig sein, weil ts in msec. in der Datenbank steht.
Achso, hatte das nur angenommen, da ich vor ein paar wochen so nen View mit konvertiertem Datum erstellt habe

-
Habe inzwischen einen Tipp vom Spezialisten erhalten, der funktioniert:
AND ts < UNIX_TIMESTAMP('2020-02-02 06:00:00')*1000
ORDER BY ts DESC LIMIT 1Ohne order by ist der Rückgabewert willkürlich und nicht das, was ich möchte.
@hanss die suchparameter muss die datenbank allerdings schon einhalten.
wenn dann bei der ergebnissumme dann mehr wie ein wert übrigbleibt ist in der tat bei limit der konkrete datensatz zufällig (bzw. hängt von der organisation der daten durch die datenbank ab)
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden