Chris: Mysql Select next 14 Days

Hallo zusammen,

ich habe ein kleines Problem mit eine MySQL Query.
Ich möchte gerne die nächsten 14 Tage aus der DB holen (date spalte), dazu habe ich mir folgenden Query gebaut der wunderbar funtioniert.

day > '".date ("Y-m-d", mktime(0, 0, 0, date("m"), date("d"), date("Y")))."' AND day <= '".date ("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+14, date("Y")))."'

nun habe ich im MySQL Handbuch nachgeschaut und bin auf ungeahnte Möglichkeiten gestossen ;-)

TO_DAYS(NOW()) - TO_DAYS(day) >= 14

Leider kriege ich es nicht hin mit dem Query die nächsten 14 Tage zu Selecten (Kein Ergebniss)...

Kann mir da von euch jemand weiter helfen ?

Danke für eure Hilfe & einen schönen rest Sonntag,

Chris

  1. Hallo!

    Ich möchte gerne die nächsten 14 Tage aus der DB holen (date spalte), dazu habe ich mir folgenden Query gebaut der wunderbar funtioniert.

    nun habe ich im MySQL Handbuch nachgeschaut und bin auf ungeahnte Möglichkeiten gestossen ;-)

    TO_DAYS(NOW()) - TO_DAYS(day) >= 14

    Was gibt den "TO_DAYS(NOW()) - TO_DAYS(day)" ohne >=14 aus? Vielleicht kammot da ja schon gar nichts was größer oder kleiner 14 ist.

    Die nächsten 14 Tage geht am besten so:

    DATE-Spalte -> datum

    SELECT spalten FROM tabelle WHERE datum>=CURDATE() AND datum<=DATE_ADD(CURDATE(), INTERVAL 14 DAY);

    MfG, André Laugks

    --
    L-Andre @ gmx.de
    1. Berichtigung:

      TO_DAYS(NOW()) - TO_DAYS(day) >= 14

      Was gibt den "TO_DAYS(NOW()) - TO_DAYS(day)" ohne >=14 aus? Vielleicht kammt da ja schon gar nichts was _größer oder gleich_ 14 ist.

      MfG, André Laugks

      --
      L-Andre @ gmx.de
      1. Was gibt den "TO_DAYS(NOW()) - TO_DAYS(day)" ohne >=14 aus? Vielleicht kammt da ja schon gar nichts was _größer oder gleich_ 14 ist.

        Da gibt er mir alles aus was über dem aktuellen Tag liegt, sprich 1 Resultat da ein Eintrag in der Zukunft (25 Mai) ;-)

        Gruß,

        Chris

        1. Hallo!

          Was gibt den "TO_DAYS(NOW()) - TO_DAYS(day)" ohne >=14 aus? Vielleicht kammt da ja schon gar nichts was _größer oder gleich_ 14 ist.

          Da gibt er mir alles aus was über dem aktuellen Tag liegt, sprich 1 Resultat da ein Eintrag in der Zukunft (25 Mai) ;-)

          25 Mai liegt innerhalb der nächsten 14 Tag! Geht dann mein SQL-Statement?

          MfG, André Laugks

          --
          L-Andre @ gmx.de
          1. 25 Mai liegt innerhalb der nächsten 14 Tag! Geht dann mein SQL-Statement?

            Jupp das stimmt ;-) aber er geht auch über die 14 Tage hinaus.

    2. Huhu,

      Die nächsten 14 Tage geht am besten so:

      DATE-Spalte -> datum

      SELECT spalten FROM tabelle WHERE datum>=CURDATE() AND datum<=DATE_ADD(CURDATE(), INTERVAL 14 DAY);

      day>=CURDATE() AND day<=DATE_ADD(CURDATE(), INTERVAL 14 DAY)

      klappt leider nicht ;-)
      Dabei schmeisst er mir alle Spalten, sowohl vor dem aktuellen Tag als auch über die 14 Tage hinaus.

      Viele Grüße,

      Chris

      1. day>=CURDATE() AND day<=DATE_ADD(CURDATE(), INTERVAL 14 DAY)

        klappt leider nicht ;-)
        Dabei schmeisst er mir alle Spalten, sowohl vor dem aktuellen Tag als auch über die 14 Tage hinaus.

        Nach oben hin passt der Query aber er nimmt auch die Tage raus die vor dem aktuellen Tag waren (vor dem 16 Mai)

    3. Die nächsten 14 Tage geht am besten so:

      DATE-Spalte -> datum

      SELECT spalten FROM tabelle WHERE datum>=CURDATE() AND datum<=DATE_ADD(CURDATE(), INTERVAL 14 DAY);

      So klappt bei mir alles:

      day>CURDATE() AND day<=DATE_ADD(CURDATE(), INTERVAL 14 DAY)

      Viele Grüße und Danke ...

      Chris

  2. Hi,

    TO_DAYS(NOW()) - TO_DAYS(day) >= 14
    Leider kriege ich es nicht hin mit dem Query die nächsten 14 Tage zu Selecten (Kein Ergebniss)...

    Wie auch? Du verlangst ja in der Bedingung, daß die Differenz GRÖSSER als 14 ist - obwohl Du doch die Daten haben willst, für die die Differenz zwischen 0 und 14 ist...

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.