[MySQL] sortiert falsch...

M3Y3R

Well-known member
ID: 336361
L
8 Mai 2006
1.608
60
Hallo,

folgendes Problem bietet sich mir:

In der DB habe ich das Feld "date". In dem Feld ist das Datum im folgenden Format gespeichert :arrow: Wed Jan 3 00:44:52 2007

Wenn ich nun mit order by date nach Datum sortiere, sortiert er nach den Wochentagen. Ich möchte aber gezielt nach den Tagen-Monat-Jahr sortieren.
Wie muss dann meine SQL-Abfrage aussehen? Wer kann mir da mal schnell weiterhelfen?


MFG
Papenburger
 
Das Problem ist, dass Du ein Datum vermutlich in einer Varchar-Spalte speicherst. Dadurch wird lexikalisch und nicht chronologisch sortiert.

MySQL bietet dafür eigene Datentypen an, dann klappt das auch mit dem Sortieren vernünftig.

Kannst mal in der MySQL-Doku gucken, ob es evtl. möglich ist, Dein Datum auf einen Datumsdatentypen zu casten. Falls ja, kannst Du dann folgendermassen richtig sortieren:
Code:
SELECT foo
FROM bar
ORDER BY DATE_FUNCTION(date)
 
und falls du aber bei varchar bleiben möchtest (was ja noch andere gründe haben könnte), kannst du das auch einfach andersherum aufschreiben, also mit dem jahr anfangen im speicher
Jahr.Monat.Tag Stunden:Minuten:Sekunden
dann sortiert er auch richtig

oder du speicherst einfach dem timestamp time() und formatierst diesen dann bei der ausgabe wie du ihn brauchst

ansonsten das vom vorredner vorgeschlagene...