Announcement

Collapse
No announcement yet.

Nur ein paar Tage lang anzeigen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nur ein paar Tage lang anzeigen

    Ich möchte gerne Datensätze (Erstellung-Datum in Datum-Spalte) selektieren, die bis vor bspw. 14 Tagen erstellt worden sind - also nur die, welche die letzten 2 Wochen dazugekommen sind. Irgendwie funktioniert die Subtraktion des Datums anscheinend nicht ganz und ich habe auch keine Zeit lange zu experimentieren(dürfte aber nicht all zu schwer sein). Danke für euere Hilfe im Voraus!

    Script(php)-Auszug:
    $heute=date(d.m.y);
    $query = "SELECT * FROM test where datum>($heute-15) order by datum";

  • #2
    Hallo Andreas,<br><br>
    die Sache mit dem Datum wird so sicher nicht funktionieren.<br><bR>
    Von welchem Typ ist denn dein feld <i>datum</i> in der Datenbank?
    Wenn es ein Timestamp (unix) ist, solltest du die 15 Tage in Sekunden umrechnen und diesen Wert in die Query übernehmen.<br><i>date</i> formatiert in deinem Falle ja nur eine Datumsangabe

    Comment


    • #3
      In MySQL gibt es wunderschoene Datums-Funktionen, die genau das erledigen:
      <pre>
      SELECT * FROM test WHERE TO_DAYS(NOW()) - TO_DAYS(datum) &lt;= 14 ORDER BY datum;
      </pre>
      Was passiert? Nun, to_days(now()) rechnet das aktuelle Datum in einen Tag um (laut Doku Anzahl der Tage seit Jahr 0), und to_days(datum) rechnet den Wert aus dem Feld datum (hoffentlich ein DATETIME und kein String) ebenfalls in einen Tag um. Wenn die Differenz &lt;= 14 ist, landet das Tupel in der Ergebnismenge.<p>
      Marc

      Comment


      • #4
        Super Marco, danke! ...das mit "to_days" kannte ich nicht

        Comment

        Working...
        X