Bear: Datenbankeinträge pro Woche ermitteln?

Hallo Forumsteilnehmer

gibt es eine Möglichkeit mit PHP und MySQL schnell und einfach Daten aus der Datenbank, die mit dem DATETIME Format versehen sind, nach Wochen auszugeben?

Idealerweise möchte ich eine Anzeigeoption, wo der Benutzer einfach die Woche (1-52) und das Jahr auswählt und es werden die entsprechenden Datensätze gezeigt. Nur vom DATETIME Eintrag kann ich ja keine Woche bestimmen.

Für Informationen wäre ich dankbar,
Bear

  1. Was ich gefunden habe ist:

    mysql> SELECT WEEKOFYEAR('1998-02-20');
            -> 8

    Aber eigentlich brauche ich es ja genau anders herum, also eine SQL in der Art

    select * where week = 8 and year = 2006

    1. ... WHERE week(datetimespalte) = deinWert

      "deinwert" könnte zb. auch week(CURDATE()) sein

      HTH, Frank

      1. Mein Gott, beleidigend logisch.
        Vielen Dank.

        Bear

        1. Mein Gott, beleidigend logisch.

          Funktionen können verschachtelt werden. Das ist ja keine Selbstverständlichkeit, sondern ein echtes Feature. Wir wären vor 30 Jahren auch nicht so schnell auf die Idee gekommen. Damals war man schon froh, wenn man Strings hatte.

    2. Moin!

      mysql> SELECT WEEKOFYEAR('1998-02-20');
              -> 8

      Aber eigentlich brauche ich es ja genau anders herum, also eine SQL in der Art

      select * where week = 8 and year = 2006

      Du kannst aus dem Datum DATETIME selbstverständlich auch die Woche oder Jahr+Woche ermitteln und das dann gruppieren oder für WHERE-Vergleiche nutzen.

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
    3. Was ich gefunden habe ist:

      mysql> SELECT WEEKOFYEAR('1998-02-20');
              -> 8

      Aber eigentlich brauche ich es ja genau anders herum, also eine SQL in der Art

      select * where week = 8 and year = 2006

      SELECT *
      FROM tabelle
      WHERE WEEKOFYEAR( datums_spalte ) = 8
      AND YEAR( datums_spalte ) = 2007

      das sollte gehen ;)

      1. Moin!

        WHERE WEEKOFYEAR( datums_spalte ) = 8
        AND YEAR( datums_spalte ) = 2007

        das sollte gehen ;)

        WHERE YEARWEEK(Datumsspalte)= 200708

        Ist kürzer und schneller.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
  2. Hallo zurück!

    Die Verfügbarkeit einer Dokumentation zu deinem Datenbanksystem ist dir bewusst und bekannt?

    MySql bietet spezielle Funktionen für Datum/Zeit, z.b.
    Week()

    Weiterhin könntest du COUNT() zum Zählen der Datensätze und GROUP BY zum Gruppieren auf Kalenderwochenebene gebrauchen.

    Grüsse,
    Frank