Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL - Abfrage mit Datum

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL - Abfrage mit Datum

    Hallo Kollegen,

    ich habe folgendes Problem:
    In einer SQL-Datenbank werden unter Tags alle 5min 4 Temperaturen (T1-T4) mit einem Datum abgespeichert. Nachts werden die Daten nur alle halbe Stunde geschrieben.
    Jetzt möchte ich über einen Datepicker das Anfangsdatum und das Enddatum aussuchen lassen.
    Nun soll eine SQL-Abfrage gemacht werden in denen alle Datensätze von Anfangsdatum bis Enddatum ausgegeben werden.
    Code:
    SELECT Datum, T1, T2, T3, T4 FROM tb_Pool WHERE Datum >= DATE('2019-04-30') AND Datum <= DATE('2019-05-01')
    Leider werden nur die Datensätze ausgegeben vom 30.04.2019! Was mache ich falsch?

    Für Hilfe wäre ich echt dankbar.


  • #2
    Geht doch - dann stimmt wohl was mit deinen Daten nicht

    http://www.sqlfiddle.com/#!9/d61566/1
    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

    Kommentar


    • #3
      Bei Problemen mit Abfragen bitte immer auch die Tabellenstruktur sowie Testdaten als SQL-Code mitliefern, damit das nachvollziehbar ist.

      Kommentar


      • #4
        Hallo Hellbringer,

        die Datenbankstruktur sieht wie folgt aus:
        ID int(11)
        Datum datetime on update CURRENT_TIMESTAMP
        T1 float
        Eine Datenzeile sieht wie folgt aus:
        ID Datum T1
        1561 2019-04-30 22:32:21 24,5


        Das komische ist wenn ich die SQL-Abfrage wie folgt generiere zeigt es mir die Daten des 30.04.2019 bis zum 01.05.2019 an:

        Code:
         SELECT Datum, T1, T2, T3, T4 FROM tb_Pool WHERE Datum >= DATE('2019-04-30') AND Datum <= DATE('2019-05-02')
        Kann es daran liegen, dass in der Tabelle der Datentyp datetime ist am Abfragedatum aber keine Uhrzeit dran hängt?

        Vielen Dank für Eure Unterstützung.

        Kommentar


        • #5
          Zeige dein nicht funktionierendes Beispiel in sqlfiddle wie in Beitrag #2.

          Datetime ist richtig und hat damit nichts zu tun.

          Kommentar


          • #6
            Zitat von hunterhb Beitrag anzeigen
            die Datenbankstruktur sieht wie folgt aus:
            ID int(11)
            Datum datetime on update CURRENT_TIMESTAMP
            T1 float
            Eine Datenzeile sieht wie folgt aus:
            ID Datum T1
            1561 2019-04-30 22:32:21 24,5
            Bitte als SQL-Code und nicht als HTML-Tabelle posten.

            Kommentar


            • #7
              Hier der nicht funktionierende Link.
              Mit dieser Abrage bekomme ich nur den 30.04.2019, obwohl es einen Eintrag vom 01.05.2019 gibt!
              http://www.sqlfiddle.com/#!9/f63ea0/1

              Kommentar


              • #8
                Code:
                SELECT Datum FROM tb_Pool WHERE DATE(Datum) >= '2019-04-30' AND DATE(Datum) <= '2019-05-01'
                DATE muss natürlich auf die Splate angewendet werden.

                Kommentar


                • #9
                  Oh Gott,
                  natürlich!!!

                  Vielen Dank!!

                  Kommentar


                  • #10
                    Zitat von hunterhb Beitrag anzeigen
                    Nun soll eine SQL-Abfrage gemacht werden in denen alle Datensätze von Anfangsdatum bis Enddatum ausgegeben werden.
                    Code:
                    SELECT Datum, T1, T2, T3, T4 FROM tb_Pool WHERE Datum >= DATE('2019-04-30') AND Datum <= DATE('2019-05-01')
                    Leider werden nur die Datensätze ausgegeben vom 30.04.2019! Was mache ich falsch?
                    Gar nichts, hast nur einen Gedankenfehler. Dein Datum ist vom Typ Datetime, und eine Bedingung ist <= DATE('2019-05-01').
                    '2019-05-01' entspricht aber ' '2019-05-01 00:00:00'. Alles Klar? Und lass das DATE() weg.
                    Warum möchtest du keine Zeiten mit zulassen? Wenn du das Enddatum inklusive haben möchtest, dann addiere 1 Tag dazu (oder 23h59min59sek).

                    Kommentar

                    Lädt...
                    X