[mySQL] Nach Datum sortieren



  • Hallo,
    ich habe folgendes Problem.

    Bei der Konzeption meiner Datenbank habe ich leider nicht gründlich genug nachgedacht und die Spalte Datum als Textvariable und nicht als Date angelegt.

    Wenn ich jetzt nach dem Datum sortiere, dann erhalte ich eine Ausgabe der Art:

    01.10.06
    06.08.04
    07.05.05

    und nicht

    06.08.04
    07.05.05
    01.10.06

    Ich wollte den Fehler behen, doch wenn ich den Datentyp auf DATE ändere, dann wird das Datum in das Format YYYY-MM-DD falsch konvertiert.

    alt: 05.05.2006
    neu: 2005-05-06

    Muss ich ein php Skript schreiben, dass mir das Datum erst in das YYYY-MM-DD Format formatiert und dann den Datentyp der Spalte ändern, oder kann ich auch das Format der Date Variable ändern?

    Danke,
    Michael



  • Mit den Stringfunktionen müsstest du eigentlich alle Daten gleichzeitig mit nur einer einzigen SQL-Query ändern können, um dann nach DATE konvertieren zu können. Siehe dazu Stringfunktionen in der Dokumentation.

    Einen einfacheren Weg sehe ich nicht.



  • Einen einfacheren Weg sehe ich nicht.

    @mhecker: Hast einen primary Key mit autoincrement in der Tabelle? Wenn ja könntest du auch darüber sortieren... oder nicht?

    Gruß, Caipi.



  • @caipi: Ja, habe ich! Das ist aber natürlich weniger elegant.

    Michael



  • Aber was soll's? Wir sind ja schließlich nicht bei einer Modenschau.
    Auf Grund der Art der Daten erhalte ich das gewünschte Ergebnis, wenn ich nach der ID sortiere.

    Thema erledigt!



  • aber nur wenn das datum auch immer höher ist als der vorherige datensatz.
    du kannst dir bei einem RDBMS nie sicher sein wo deine daten stehen.
    also mach es gleich ordnetlich sonst hast du vielleicht später wieder probleme.


Anmelden zum Antworten