Stefan: MySQL "SELECT * from $tabelle order by datum"

Hallo!

Meine SQL-Datenbank wird durch

SELECT * from $tabelle order by datum

nach dem Feld "datum" sortiert.

Allerdings gibt es Probleme bei der Sortierung:
Das Datum wird in der Form 20.02.2002 in die Datenbank eingegeben.
Wenn ich nun mehrere Daten habe, werde diese aber nicht chronologisch geordnet; es sieht dann so aus:

01.01.2002
01.05.2002
01.05.2005
01.12.2002

Kann mir jemenad sagen, wie ich das ändern kann?
D.h. also einfach die verschiedenen Daten aufsteigend sortieren?

Vielen Dank,,
Stefan Spieren

  1. hi!

    Das Datum wird in der Form 20.02.2002 in die Datenbank eingegeben.

    Welchen Typ hat denn das Feld, in dem du dein Datum speicherst? Doch
    nicht etwa CHAR(x) bzw. VARCHAR(x)? Dann geht das natürlich nicht
    vernünftig, da dann einfach die Strings sortiert werden.

    Also verwende einen Datentyp, der für Zeitangaben geschaffen ist:
    DATE, DATETIME oder TIMESTAMP -- in deinem Fall vermutlich das erste.
    Dann klappt's auch mit dem sortieren.

    bye, Frank!

    1. » Welchen Typ hat denn das Feld, in dem du dein Datum speicherst? Doch

      nicht etwa CHAR(x) bzw. VARCHAR(x)? Dann geht das natürlich nicht
      vernünftig, da dann einfach die Strings sortiert werden.

      Der Typ ist TEXT!!!

      Also verwende einen Datentyp, der für Zeitangaben geschaffen ist:
      DATE, DATETIME oder TIMESTAMP -- in deinem Fall vermutlich das erste.
      Dann klappt's auch mit dem sortieren.

      Leider nicht!!!

      Gibts da noch was anderes, was ich beachten muss?

      1. Moin!

        Der Typ ist TEXT!!!

        TEXT ist als Datentyp für ein "DATUM" falsch. Nimm, wie schon gesagt, DATE (für ein Tagesdatum), DATETIME (für ein Datum mit Zeitangabe) oder TIMESTAMP (ebenfalls Tag mit Uhrzeit).

        Also verwende einen Datentyp, der für Zeitangaben geschaffen ist:
        DATE, DATETIME oder TIMESTAMP -- in deinem Fall vermutlich das erste.
        Dann klappt's auch mit dem sortieren.

        Leider nicht!!!

        Gibts da noch was anderes, was ich beachten muss?

        Hattest du den Spaltentyp auf einen Datumstyp umgestellt? Wenn nein: Mach das zuerst. Danach wirst du vermutlich die bereits gespeicherten Daten nochmal alle auf die korrekte Datumsschreibweise umändern müssen, und dann sollte es gehen.

        - Sven Rautenberg

  2. Hi Stefan,

    Das Datum wird in der Form 20.02.2002 in die Datenbank eingegeben.

    ganz schlechte Idee.

    Wenn schon kein geeignetes Tabellenformat, dann doch wenigstens ISO-Notation des Datums (YYYY-MM-DD), das ist nämlich sehr wohl string-sortierbar.

    Viele Grüße
          Michael