Hallo Forum!
Mein Ziel ist es anhand von Datensätzen eingetragen Daten auszulesen die in der Datenbank vorhanden sind. ( Es sind mehrere Einträge pro Tag)
Ich habe folgendes Problem. Ich hab in einer Datenbank chronologisch richtige Datums Einträge. Bedeutet so in etwa:
31.08.05
01.09.05
02.09.05
03.09.05
etc.
Wenn ich eine normale SELECT Abfrage ohne Extra Optionen mache ist auch alles in richtiger reihenfolge aber halt alles mehrfach, nur wenn ich entweder mit ORDER BY sortiere dann sortiert er falsch bzw. nicht so wie ich das möchte.
01.09
03.09
31.05
Das blöde ist wenn ich ein SELECT DISTINCT auf die Datensätze mache oder mit GROUP BY arbeite sortiert er automatisch!! Das soll er aber nicht deswegen bekomme ich die Datensätze nicht sauber in eine Reihenfolge, ich will jetzt aber auch verhindern das ich das groß Programmieren muss.
Habe ich vieleicht was übersehen?
[SQL] Sortierung von Datensätzen
Hm ... ich kann dir zwar SQL-maßig keine Sofortlösung anbieten, jedoch bin ich das Problem in meinen Anwendungen elegant durch ein anderes Format umgangen:
Daten (Mehrzahl von Datum?) werden bei mir "yyyy-mm-dd" formatiert. Dann hab ich auch keinerlei Probleme mit der Sortierung. Diese Darstellungsweise ist mittlerweile - glaub ich - auch laut Duden in der deutschen Rechtschreibung akzeptiert.
In welchem Format ist eigentlich dein Feld angelegt? Richtig als Datum- oder als Textfeld?
Gruß
Roland
Daten (Mehrzahl von Datum?) werden bei mir "yyyy-mm-dd" formatiert. Dann hab ich auch keinerlei Probleme mit der Sortierung. Diese Darstellungsweise ist mittlerweile - glaub ich - auch laut Duden in der deutschen Rechtschreibung akzeptiert.
In welchem Format ist eigentlich dein Feld angelegt? Richtig als Datum- oder als Textfeld?
Gruß
Roland
Du kannst in der Datenbank deine Daten nicht chronologisch ablegen. Das sieht vielleicht gerade bei kleinen Datenmengen so aus, aber generell organisiert sich die Datenbank selbst, so daß dieser Umstand nicht immer so sein muß.
Generell solltest Du aber auch den Datums-Datentyp verwenden. Dann mußt Du Dich auch nicht um korrekte Eingaben kümmern, da die DB sowas wie 30.02.2005 nicht zulassen wird.
Des weiteren ist dann auch das Format egal, da dies einzig und allein für die Ausgabe wichtig ist. Für's Sortieren ist es egel ob ISO, GERMAN oder sonst was...
Generell solltest Du aber auch den Datums-Datentyp verwenden. Dann mußt Du Dich auch nicht um korrekte Eingaben kümmern, da die DB sowas wie 30.02.2005 nicht zulassen wird.
Des weiteren ist dann auch das Format egal, da dies einzig und allein für die Ausgabe wichtig ist. Für's Sortieren ist es egel ob ISO, GERMAN oder sonst was...
Hi kannst Du das ganze nicht in ein Datum konvertieren und dann sortieren.Jens hat geschrieben: Hätte ja sein können das man SQL technisch was hätte machen können
PseudoCode:
Code: Alles auswählen
select id, char_to_date(datum) from tabelle order by 2;
gruss
eC