Marco: MySQL SORT BY date month

Hi,

ich möchte eine SQL-Abfrage in PHP machen.

$abfrage = "SELECT * FROM ops_release WHERE instoredate <> '0000-00-00' ORDER BY instoredate ASC, form ASC";

instoredate ist ein date (2008-12-24). Wie kann ich hier aber nicht Tageweise, sondern Monatsweise sortieren?

Die Einträge sollen nach Datum sortiert werden. Aber in "form" steht bei manchen ein A und bei manchen ein B. Nun soll die Anordnung wie folgt sein:

1. Alle Januar08 Titel mit form=A (in korrekter Reihenfolge -> also auch nach Tagen sortiert)
2. Alle Januar08 Titel mit form=B (in korrekter Reihenfolge)
3. Alle Februar08 Titel mit form=A (in korrekter Reihenfolge)
4. Februar08 B (in korrekter Reihenfolge)
5. März08 A (in korrekter Reihenfolge)
6. März08 B (in korrekter Reihenfolge)
7.... usw.

wie bekomme ich diese SOrtierung mit einer einzelnen Abfrage hin? Geht das überhaupt oder muss ich mehrere Abfragen benutzen?

Danke und Grüße

  1. Hello,

    wie bekomme ich diese SOrtierung mit einer einzelnen Abfrage hin? Geht das überhaupt oder muss ich mehrere Abfragen benutzen?

    sortiere nicht nach dem gesamten Datum wie in der Spalte angegeben, sondern verwende die Datumsfunktionen, z.B. DATE_FORMAT, um den relevanten Teil für die Sortierung zu extrahieren, z.B. 2008-01 o.ä.

    Generell spreche ich aber im Forum jedem ein Lob aus, der für eine Datumsspalte endlich mal den richtigen Spaltentyp verwendet, viel zu viele ziehen sich auf Chars zurück...

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Let Bygones Be Bygones  --  Robert Pitscottie: "Chronicles of Scotland"
    1. sortiere nicht nach dem gesamten Datum wie in der Spalte angegeben, sondern verwende die Datumsfunktionen, z.B. DATE_FORMAT, um den relevanten Teil für die Sortierung zu extrahieren, z.B. 2008-01 o.ä.

      ORDER BY DATE_FORMAT('instoredate', '%Y %m') ASC, artstatus ASC

      Klappt leider nicht. Jetzt sortiert er das Datum komplett falsch und eigentlich nur komplett nach artstatus (das wo A oder B drin steht). Habe ich DATE_FORMAT falsch eingesetzt?

      Generell spreche ich aber im Forum jedem ein Lob aus, der für eine Datumsspalte endlich mal den richtigen Spaltentyp verwendet, viel zu viele ziehen sich auf Chars zurück...

      Danke :-)

      1. Problem gelöst. Da waren 2 ' zuviel ;-) Jetzt klappts. Vielen Dank nochmal!!