Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. gelöst: mysql query liefert falsche Werte bei Datum < xy

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    gelöst: mysql query liefert falsche Werte bei Datum < xy

    This topic has been deleted. Only users with topic management privileges can see it.
    • hanss
      hanss last edited by hanss

      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 1
      
      

      liefert 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.

      1 Reply Last reply Reply Quote 0
      • C
        CruziX last edited by

        Ersetz das *1000
        Durch /1000

        1 Reply Last reply Reply Quote 0
        • hanss
          hanss last edited by

          /1000 kann nicht richtig sein, weil ts in msec. in der Datenbank steht.

          C 1 Reply Last reply Reply Quote 0
          • C
            CruziX @hanss last edited by

            @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 😶

            1 Reply Last reply Reply Quote 0
            • hanss
              hanss last edited by

              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 1

              Ohne order by ist der Rückgabewert willkürlich und nicht das, was ich möchte.

              OliverIO 1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @hanss last edited by

                @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)

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                859
                Online

                31.8k
                Users

                80.0k
                Topics

                1.3m
                Posts

                javascript
                3
                6
                259
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo