SQL order by datum

Hi

Ich habe das Problem, dass ich ein Datum DESC sortieren will, wobei ich das Feld nicht als DATE im mySQL definieren kann.

Die Felder haben jeweils den Wert z.B.
28.10.2010 - 10.11.2010
06.05.2010 - 20.05.2010

Die Daten werden zwar sortiert, jedoch ist nach einigen Datensätzen die Sortierung willkührlich …

SELECT … ,datum, …FROM Tab_Revier, Tab_Datum WHERE Tab_Revier.revier.id = Tab_Datum.revier.id AND datum LIKE ‚%2010‘ ORDER BY DAY(datum) DESC, MONTH(datum) DESC, YEAR(datum) DESC

Besten Dank für die Hilfe …

Hallo, darf ich fragen welchen Datentyp dat Feld hat in dem du beide Datum speicherst (Du speicherst doch beide Werte in einem Feld, habe ich das richtig verstanden?)
Gruß
Ralf Schneider

Hi

Ich habe das Problem, dass ich ein Datum DESC sortieren will,
wobei ich das Feld nicht als DATE im mySQL definieren kann.

Die Felder haben jeweils den Wert z.B.
28.10.2010 - 10.11.2010

06.05.2010 - 20.05.2010

Die Daten werden zwar sortiert, jedoch ist nach einigen
Datensätzen die Sortierung willkührlich …

SELECT … ,datum, …FROM Tab_Revier, Tab_Datum WHERE
Tab_Revier.revier.id = Tab_Datum.revier.id AND datum LIKE
‚%2010‘ ORDER BY DAY(datum) DESC, MONTH(datum) DESC,
YEAR(datum) DESC

Besten Dank für die Hilfe …

Hi

Das ist korrekt, die Daten sind komplett in einem Feld … und es ist für mich relativ mühsam, dies zu änern, da ich viel zuwenig know-How dafür habe …

Das Feld ist als VARCHAR definiert … und beinhaltet unter anderem z.T. auch Text … Dies kann ich jedoch mit dem FROM … WHERE abfangen.

Ansonsten habe ich eine Test-Side eingerichtet

www.shania.ch/Test/html/testbu.html

Da ist auch das derzeitige Ergebiniss ersichtlich …

Besten Dank für die Hilfe

Gehe ich auf die Website erhalte ich folgenden Fehler:
Fatal error: Call to a member function QueryString() on a non-object in /srv/www/vhosts/sail-4u.com/httpdocs/Test/html/testco.php on line 23

Hi Ralf

Sorry für die Zeit …

Wir sind mit einer Segelyacht in der Karibik unterwegs und hatten Gäste an Bord … und leider oft kein Internet.

unter der nachfolgenden Seite konnte ich dies wieder
herstellen …

http://www.shania.ch/html/mittelmeer_segeltorn.html

…anschliessend auf 2011 Segeltörn Mittelmeer klicken … (Register Karte neben 2010 Segeltörn Mittelmeer) … die Daten sind zwar nicht vom 2011 sondern vom 2010aber die Sortierung erfolgt direkt aus der mySQL DB mit ‚echten Daten‘

Besten Dank für Deine Hilfe.

Urs

Hallo Urs,

ich habe einiges ausprobiert und bin zu folgender Erkenntnis gelangt:
Es ist zwar nur ein Workaround aber praktikabel, da es sich in Deinem Fall um nur wenige Datensätze handelt. Füge einfach eine weitere Spalte [SORT] vom Datentyp INT oder SMALLINT hinzu. In diese Spalte gibst Du einfach „1“ bis „n“ gemäß benötigter Sortierteihenfolge ein. Diese Spalte greifst Du mit ab und sortierst nach dieser Spalte wie Du es brauchst. Die Spalte zeigst Du aber nicht auf der Webseite an.
SORT;DATUM
1;05.06.2010 - 12.06.2010
2;19.06.2010 - 26.06.2010
3;10.07.2010 - 17.07.2010

Es gibt mit Sicherheit galantere Methoden um ans Ziel zu gelangen, aber um diese zu ermitteln fehlt mir im Moment die Zeit.

Ich hoffe Dir geholfen zu haben.

Viel Spaß beim Segeln!
Ralf

Hi Ralf

Nun Du hast mir zumindest den Weg gezeigt :smile:

Habe die Daten chronologisch geordnet in der TAB und
mache nun einen ORDER by auf die datum_id …
… und siehe da … es funktioniert.

Besten Dank für Deine Zeit und Mühen :smile:

LG Urs

Hallo Urs,

keine Ursache, gerne wieder!

Viele Grüße aus Berlin
Ralf