Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. SQL auslesen und JSON erstellen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    491

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

SQL auslesen und JSON erstellen

Geplant Angeheftet Gesperrt Verschoben Blockly
6 Beiträge 2 Kommentatoren 562 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    Stefan_NK
    schrieb am zuletzt editiert von
    #1

    Hallo Leute,

    ich habe es nun endlich geschafft, mittels Blockly eine SQL zu befüllen und wieder auszulesen.
    Die Testtabelle sieht wie folgt aus:
    Tabelle.jpg
    Datum= Datentyp date
    Zeit=Datentyp time
    km... =Datentyp int.

    Zu meinem Problem:
    Ich lese die Tabelle mittels Blockly aus. blockly.jpg

    <block xmlns="https://developers.google.com/blockly/xml" type="convert_object2json" id="YE=Q8?Z?3wIHm4;Nf+p_" x="297" y="117">
      <field name="PRETTIFY">TRUE</field>
      <value name="VALUE">
        <block type="variables_get" id="P!]-f.8Q#:Osu%xF9gO[">
          <field name="VAR" id="CgfJo8VRSg%C3jf0z5Fh">result_objekt</field>
        </block>
      </value>
    </block>
    

    und erhalte im JSON einen Timestamp anstatt dem Datum. Das JSON wird in einen Datpunkt vom Typ JSON geschrieben.

    [
      {
        "ID": 1,
        "Datum": "2023-01-14T23:00:00.000Z",
        "Zeit": "12:53:00",
        "kmStart": 300,
        "kmEnde": 500
      },
      {
        "ID": 2,
        "Datum": "2023-01-14T23:00:00.000Z",
        "Zeit": "14:53:00",
        "kmStart": 500,
        "kmEnde": 550
      },
      {
        "ID": 3,
        "Datum": "2023-01-14T23:00:00.000Z",
        "Zeit": "14:53:00",
        "kmStart": 500,
        "kmEnde": 550
      },
      {
        "ID": 4,
        "Datum": "2023-01-15T23:00:00.000Z",
        "Zeit": "15:16:00",
        "kmStart": 500,
        "kmEnde": 550
      },
      {
        "ID": 5,
        "Datum": "2023-01-15T23:00:00.000Z",
        "Zeit": "15:16:00",
        "kmStart": 500,
        "kmEnde": 550
      }
    ]
    

    In der VIS gelingt es mir auch nicht mit vis.inventwo - JSON das Datum bzw. die Uhrzeit zu formatieren.
    Gibt es eine Möglichkeit die Daten im JSON zu formatieren?

    LG Stefan

    S 1 Antwort Letzte Antwort
    1
    • S Stefan_NK

      Hallo Leute,

      ich habe es nun endlich geschafft, mittels Blockly eine SQL zu befüllen und wieder auszulesen.
      Die Testtabelle sieht wie folgt aus:
      Tabelle.jpg
      Datum= Datentyp date
      Zeit=Datentyp time
      km... =Datentyp int.

      Zu meinem Problem:
      Ich lese die Tabelle mittels Blockly aus. blockly.jpg

      <block xmlns="https://developers.google.com/blockly/xml" type="convert_object2json" id="YE=Q8?Z?3wIHm4;Nf+p_" x="297" y="117">
        <field name="PRETTIFY">TRUE</field>
        <value name="VALUE">
          <block type="variables_get" id="P!]-f.8Q#:Osu%xF9gO[">
            <field name="VAR" id="CgfJo8VRSg%C3jf0z5Fh">result_objekt</field>
          </block>
        </value>
      </block>
      

      und erhalte im JSON einen Timestamp anstatt dem Datum. Das JSON wird in einen Datpunkt vom Typ JSON geschrieben.

      [
        {
          "ID": 1,
          "Datum": "2023-01-14T23:00:00.000Z",
          "Zeit": "12:53:00",
          "kmStart": 300,
          "kmEnde": 500
        },
        {
          "ID": 2,
          "Datum": "2023-01-14T23:00:00.000Z",
          "Zeit": "14:53:00",
          "kmStart": 500,
          "kmEnde": 550
        },
        {
          "ID": 3,
          "Datum": "2023-01-14T23:00:00.000Z",
          "Zeit": "14:53:00",
          "kmStart": 500,
          "kmEnde": 550
        },
        {
          "ID": 4,
          "Datum": "2023-01-15T23:00:00.000Z",
          "Zeit": "15:16:00",
          "kmStart": 500,
          "kmEnde": 550
        },
        {
          "ID": 5,
          "Datum": "2023-01-15T23:00:00.000Z",
          "Zeit": "15:16:00",
          "kmStart": 500,
          "kmEnde": 550
        }
      ]
      

      In der VIS gelingt es mir auch nicht mit vis.inventwo - JSON das Datum bzw. die Uhrzeit zu formatieren.
      Gibt es eine Möglichkeit die Daten im JSON zu formatieren?

      LG Stefan

      S Offline
      S Offline
      Stefan_NK
      schrieb am zuletzt editiert von
      #2

      @stefan_nk
      Habe jetzt noch das SQL angepasst. Ist zwar aufwändig aber es funktioniert. Keine Ahnung ob es richtig bzw. die beste Lösung ist :blush:

      SELECT DATE_FORMAT(Datum, "%d %m %Y") Datum, TIME_FORMAT(Zeit, "%h:%i") Zeit, kmStart, kmEnde FROM iobroker.stefan_test; 
      
      OliverIOO 1 Antwort Letzte Antwort
      0
      • S Stefan_NK

        @stefan_nk
        Habe jetzt noch das SQL angepasst. Ist zwar aufwändig aber es funktioniert. Keine Ahnung ob es richtig bzw. die beste Lösung ist :blush:

        SELECT DATE_FORMAT(Datum, "%d %m %Y") Datum, TIME_FORMAT(Zeit, "%h:%i") Zeit, kmStart, kmEnde FROM iobroker.stefan_test; 
        
        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von
        #3

        @stefan_nk
        Das ist die bessere Lösung.
        Datum formatieren in JavaScript ist nicht so optimal

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        1 Antwort Letzte Antwort
        1
        • S Offline
          S Offline
          Stefan_NK
          schrieb am zuletzt editiert von
          #4

          Hallo, ich bin jetzt schon um einiges weiter, habe aber dennoch eine Frage zum SQL:

          In der Datenbank ist das Datum im Format yyyy-mm-dd als Datentyp DATE gespeichert.

          Das SQL liefert mir so das korrekte Ergebnis und richtig sortiert.

          select
          ProtTag,
          TIME_FORMAT(ZeitStart, "%H:%i") ZeitStart, 
          TIME_FORMAT(ZeitEnde, "%H:%i") ZeitEnde
          FROM iobroker.mustang ORDER BY ProtTag DESC, ZeitStart DESC;
          


          2023-02-03 12_02_06-Window.png

          Wenn ich jetzt aber das Datum im SQL formatiere stimmt die Sortierreihenfolge nicht (mir ist schon klar warum)

          select
          DATE_FORMAT(ProtTag, "%d.%m.%Y") ProtTag,
          TIME_FORMAT(ZeitStart, "%H:%i") ZeitStart, 
          TIME_FORMAT(ZeitEnde, "%H:%i") ZeitEnde
          FROM iobroker.mustang ORDER BY ProtTag DESC, ZeitStart DESC;
          


          2023-02-03 12_04_09-Window.png

          Kann mir jemand von Euch bitte weiterhelfen, wie ich das machen kann, dass ohne Formatierung sortiert wird und die Darstellung aber formatiert wird?

          S 1 Antwort Letzte Antwort
          0
          • S Stefan_NK

            Hallo, ich bin jetzt schon um einiges weiter, habe aber dennoch eine Frage zum SQL:

            In der Datenbank ist das Datum im Format yyyy-mm-dd als Datentyp DATE gespeichert.

            Das SQL liefert mir so das korrekte Ergebnis und richtig sortiert.

            select
            ProtTag,
            TIME_FORMAT(ZeitStart, "%H:%i") ZeitStart, 
            TIME_FORMAT(ZeitEnde, "%H:%i") ZeitEnde
            FROM iobroker.mustang ORDER BY ProtTag DESC, ZeitStart DESC;
            


            2023-02-03 12_02_06-Window.png

            Wenn ich jetzt aber das Datum im SQL formatiere stimmt die Sortierreihenfolge nicht (mir ist schon klar warum)

            select
            DATE_FORMAT(ProtTag, "%d.%m.%Y") ProtTag,
            TIME_FORMAT(ZeitStart, "%H:%i") ZeitStart, 
            TIME_FORMAT(ZeitEnde, "%H:%i") ZeitEnde
            FROM iobroker.mustang ORDER BY ProtTag DESC, ZeitStart DESC;
            


            2023-02-03 12_04_09-Window.png

            Kann mir jemand von Euch bitte weiterhelfen, wie ich das machen kann, dass ohne Formatierung sortiert wird und die Darstellung aber formatiert wird?

            S Offline
            S Offline
            Stefan_NK
            schrieb am zuletzt editiert von
            #5

            @stefan_nk sagte in SQL auslesen und JSON erstellen:

            select
            ok, ich habs mit "herumspielen" hinbekommen :innocent: :joy:
            Falls es wer braucht oder eine "elegantere" Lösung kennt:

            select
            DATE_FORMAT(ProtTag, "%d.%m.%Y") ProtTag1,
            TIME_FORMAT(ZeitStart, "%H:%i") ZeitStart, 
            TIME_FORMAT(ZeitEnde, "%H:%i") ZeitEnde
            FROM iobroker.mustang ORDER BY ProtTag DESC, ZeitStart DESC;
            
            OliverIOO 1 Antwort Letzte Antwort
            0
            • S Stefan_NK

              @stefan_nk sagte in SQL auslesen und JSON erstellen:

              select
              ok, ich habs mit "herumspielen" hinbekommen :innocent: :joy:
              Falls es wer braucht oder eine "elegantere" Lösung kennt:

              select
              DATE_FORMAT(ProtTag, "%d.%m.%Y") ProtTag1,
              TIME_FORMAT(ZeitStart, "%H:%i") ZeitStart, 
              TIME_FORMAT(ZeitEnde, "%H:%i") ZeitEnde
              FROM iobroker.mustang ORDER BY ProtTag DESC, ZeitStart DESC;
              
              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von
              #6

              @stefan_nk

              hm, du findest, das bei d m y das dann richtig sortiert ist?
              wenn dann müsste es andersrum lauten y m d

              nach einer sortierung müsste es dann so aussehen
              wenn du formatierst, dann ist das für die db ein normaler string, der genauso sortiert wird.

              01.01.2023
              01.02.2023
              02.01.2023
              ...

              ich weiß jetzt nicht was für eine DB du genau verwendest, aber
              wenn in Feld Datum das Datum in einem für die DB verständlichen Format steht, ich glaube du hast geschrieben Datum hat den Typ Date, dann mach hinten einfach order by datum

              Die verwendeten Felder müssen nicht alle in der SELECT Klausel stehen. Wichtig ist das alle Felder über die FROM-Auswahl erreichbar sind bzw. unterschieden werden kann.

              Was mir noch aufgefallen ist:

              select
              DATE_FORMAT(ProtTag, "%d.%m.%Y") ProtTag1,
              TIME_FORMAT(ZeitStart, "%H:%i") ZeitStart,
              

              bspw ProtTag1 ist ja der Feldname der für diese Spalte verwendet werden soll. Im Standard SQL wird das mit AS benannt
              also

              SELECT
              DATE_FORMAT(ProtTag, "%d.%m.%Y") AS ProtTag1,
              TIME_FORMAT(ZeitStart, "%H:%i") AS ZeitStart,
              

              zur besseren Lesbarkeit werden alle DB-Befehle und Funktionen Groß geschrieben
              https://www.w3schools.com/mysql/mysql_alias.asp

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              765

              Online

              32.5k

              Benutzer

              81.8k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe