aus eine mysql db sortier ich nach denn feld "datum" die geht gut bis ich 12.12.2002 ausprobiert hab. der kommt jetzt zwischen 11.12.2001 und 13.12.2001. nicht gut.
datum sortierung
Einklappen
X
-
welchen Datentyp hat dein DB-Feld?
CHAR oder VARCHAR?
php-Entwicklung | ebiz-consult.de
PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
die PHP Marktplatz-Software | ebiz-trader.de
-
Die leichteste Lösung ist einfach irgend ein Fels zu nehmen. Ich würde ja date nehmen. Andere gehen aber auch.
In die Datenbank schreibst du dein Datum dann so rein
JJJJMMTT -> 20021212
Also einfach nur andersrum in die Datenbank schreiben. Jahr zuerst, dann Monat und dann die Tage.
Dein Problem ist, dass wenn du nach Datum sortiert, nach einem Wert sortiert wird, dass sieht bei dir dann so aus.
11122001
12122002
13122001
Schau dir alle drei dates rein mathematisch an, dann verstehst du die Reihenfolge der Sortierung von selbst.Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info
Kommentar
-
-
Ich meine, eine Tabelle nach dem Datum ordnen zu können...
Man könnte ja eine einfache Schachtelung vornehmen und das Datum, den Monat und das Jahr in verschiedene Spalten packen aber... nunja.. wäre Mist... welche gute Methode gibts denn?
"Computers in the future may weigh no more than 1.5 tons."
- Popular Mechanics magazine
1949
Kommentar
-
OK, ich mache das wie folgt.
In meiner Tabelle verwende ich, wenn es nur ein Datum ist das Feld "date". Der Defaultwert sieht so aus 0000-00-00 (JJJJ-MM-TT).
Wenn du etwas in die Datenbank einträgst brauchst du nur das Datum und das ist ja leicht. Also schreibst du z. B. 20011212 in die Datenbank rein. Also das Datum immer verker rum in die Datenbank eintrage. Erst das Jaht (4-stellig) dann der Monat (2-stellig) und dann der Tag (2-stellig).
In deinem query kannst du jetzt ganz bequem die Ergebnismenge auch nach dem Datum sortieren.
Gibst du das Datum ohne formatierung aus, sieht es so aus:
2001-12-12
Um das ganz dann richtig zu formatieren, ist ja dann kein Problem mehr.
Ob das die beste Möglichkeit ist weiss ich nicht, aber die funktioniert und das ziemlich gut.
Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info
Kommentar
-
-
Eigentlich ist das Problem ja richtig simpel.
In der Datenbank stehen folgende Werte drinnen und nach einer Sortierung nach dem Datum kommt das raus:
11.12.2001
12.12.2002
13.12.2001
Es sollte aber das rauskommen:
11.12.2001
13.12.2001
12.12.2002
Und das Problem ist do simpel. Man sollte das Datum einfach nur anders rum reinschreiben, so das in der Datenbank folgendes steht.
2001-12-11
2002-12-12
2001-12-13
Sind die Daten so vorhande, klappt es auch mit der sortierung.Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info
Kommentar
-
Kommentar
-
Was bitte meinst du den mit Spaltentypen?
Ist date denn keine geeigneter Feldtyp??Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info
Kommentar
-
-
Achso, ok.
Dann ist ja alles klar :-)Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info
Kommentar
Kommentar