Announcement

Collapse
No announcement yet.

Sortieren nach Datum das ein Textfeld ist

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sortieren nach Datum das ein Textfeld ist

    Ich habe in einer Datenbank ein varcharfeld wo die Daten wie folgt abgespeichert sind: TT.MM.YYYY
    nun möchte ich sie Sortieren, das frühste datum zuerst und das späteste zuletzt wenn ich jetzt aber mit "...ORDER BY start_date" sortiert es mir wie folgt:
    02.08.2010
    03.08.2011
    04.08.2010

    wobei doch erst die 2010er kommen sollten.

    Hat mir da jemand ein Tipp wie ich das Sortieren kann?

    vielen Dank für die Hilfe & Gruss Necroion

  • #2
    er sortiert doch richtig !.... ISt doch nicht als Datum definiert sondern als Varchar!... also sortiert er von vorne weg... und da ist 4 > 3 ...

    Du musst entweder das Feld von varchar ind Datum wandel oder das datum umformatieren (ins englische Format) und dann die date() funktion übergeben.

    Dann halt ORDER BY date(start_date) asc

    Reingehaun!

    Comment


    • #3
      Ganz genau, die Datenbank sortiert alles korrekt. Aber um das Datenformat einfach zu ändern, würde ich zur Sicherheit erstmal eine zusätzliche Spalte einfügen, in die du das korrekte Datum konvertierst.
      Danach löscht du die Spalte mit den Datumsangaben in Varchar.

      Doch es gibt ja auch Systeme, wo immer nur die deutsche Datumsangabe benötigt wird und es gar nicht notwendig ist, es als Datum zu haben. Schließlich wird er sich schon etwas dabei gedacht haben, es in Varchar abzuspeichern.

      Deshalb würde ich folgende Lösung vorschlagen:
      [highlight=sql]
      SELECT *
      FROM `TAB`
      ORDER BY SUBSTRING(Datum,7,4) ASC,
      SUBSTRING(Datum,4,2) ASC,
      SUBSTRING(Datum,1,2) ASC
      [/highlight]
      SQL-Code bitte korrekt formatieren

      Gruß Steusi

      Comment

      Working...
      X