Ich trinke immer so schnell: MYSQL DATE_FORMAT nach ORDER BY

Hallo,

folgendes Problem ich lese aus meiner MYSQL Datenbank mit PHP eine mit DATE Formatierte Spalte aus.
Diese möchte ich dann natürlich nach Date mit ORDER BY Sortieren. Wenn ich aber vorher mit DATE_FORMAT das Datum formatiere, erfolgt die Sortierung natürlich nach MONTAG, DIENSTAG...

Mein Ansatz war den DATE_FORMAT Befehl nach dem ORDER BY Befehl zu sezten. Leider führt das zu einem MYSQL Fehler.

Gibt es hierfür vielleicht eine schöne Lösung ohne das ich ein zweites DATE Feld in der DB einführe?

Danke

Ich trinke immer so schnell

  1. echo $begrüßung;

    Mein Ansatz war den DATE_FORMAT Befehl nach dem ORDER BY Befehl zu sezten. Leider führt das zu einem MYSQL Fehler.

    Die Reihenfolge der Syntax sowie die Abarbeitungsreihenfolge innerhalb des DBMS ist vom Anwender nicht beeinflussbar.

    Gibt es hierfür vielleicht eine schöne Lösung ohne das ich ein zweites DATE Feld in der DB einführe?

    Sortiere nach dem Wert der Spalte und nicht nach dem formatierten Wert der Ausgabe.

    echo "$verabschiedung $name";

    1. Moin

      Sortiere nach dem Wert der Spalte und nicht nach dem formatierten Wert der Ausgabe.

      Also ich benutzte jetzt
      ORDER BY spalte

      Mach ich da etwas falsch?

      1. echo $begrüßung;

        » Sortiere nach dem Wert der Spalte und nicht nach dem formatierten Wert der Ausgabe.
        Also ich benutzte jetzt
        ORDER BY spalte
        Mach ich da etwas falsch?

        Wenn spalte ein Alias in der SELECT-Klausel ist, dann ja, wenn es ein Spaltenname in der Tabelle ist, dann nicht.

        echo "$verabschiedung $name";

      2. Hallo

        »» Sortiere nach dem Wert der Spalte und nicht nach dem formatierten Wert der Ausgabe.

        Also ich benutzte jetzt
        ORDER BY spalte

        Soweit, so richtig. Dein formatiertes Datum solltest du aber umbenennen, damit es keine Namenskonflikte gibt.

        SELECT DATE_FORMAT("format", spalte) FROM tabelle ORDER BY spalte sortiert nach dem formatierten Datum.

        SELECT DATE_FORMAT("format", spalte) AS format FROM tabelle ORDER BY spalte sortiert nach dem originalen Datumsformat, auf das formatierte Datum greifst du dann mit 'format' als Spaltennamen zu.

        Tschö, Auge

        --
        Die deutschen Interessen werden am Liechtenstein verteidigt.
        Veranstaltungsdatenbank Vdb 0.2
        1. Danke Auge,

          das hat mir geholfen.