Sortieren nach Datum?

icefire

Erfahrenes Mitglied
Hallo!

Damit die Einträge tatsächlich nach ihrem Austragungsdatum angezeigt werden möchte ich die Zeilen nach "Datum" sortieren. Ich habe auch im Table eine Spalte w_date wo ich manuell das Datum (00.00.0000) eintragen kann. Nur leider liest er nur die ersten 2 Zahlen und sortiert entsprechend danach. Wie könnte ich das umgehen - oder ist es vielleicht einfacher das Datum zu stückeln auf 3 Spalten (tag,monat,jahr)?

thx for help
ice
 
Hallo!

Warum setzt du das Datum nicht einfach als Linux-Timestamp in die Tabelle.
Dann kannst du ohne Probleme deine Tabelle danach sortieren.

Beispiel:

Zeile in Tabelle einfügen:

PHP:
$Datum = time();
mysql_query ("INSERT INTO Tabelle VALUES ($ID, $Wert1, $Wert2, $Datum)");

Zelle sortieren:

PHP:
$Q = mysql_query ("SELECT * FROM Tabelle ORDER BY Datum ASC");
 
Kann ich den auch Nachträglich dann Einträge machen die zwar eine aktuelle ID haben aber das Datum zB 10 Einträge vorher angesiedelt gewesen wäre?
 
Original geschrieben von rootssw
Hallo!
Warum setzt du das Datum nicht einfach als Linux-Timestamp in die Tabelle.
Dann kannst du ohne Probleme deine Tabelle danach sortieren.
Nur der Richtigkeit halber. Es ist ein Unix-Timestamp und nicht ein Linux-Timestamp ;)
 
mhh.. mal was anderes, ich sehe das viele (die meisten) lieber die PHP Funtion time(), mktime() etc.. benutzen.. gibts da unterschiede zu den internen MySQL date/time Funtionen? Ich finde wenn MySQL diese Funktionen schon bietet, dann sollten diese auch genutzt werden, oder sind die MySQL date/time Funktionen zu ungenau? :confused:

Falls dieses der Fall sein sollte, waere ich ueber einen Link etc dankbar, um das ganze nochmals ausfuehrlich nachzulesen.
 
Original geschrieben von loki2002
mhh.. mal was anderes, ich sehe das viele (die meisten) lieber die PHP Funtion time(), mktime() etc.. benutzen.. gibts da unterschiede zu den internen MySQL date/time Funtionen? Ich finde wenn MySQL diese Funktionen schon bietet, dann sollten diese auch genutzt werden, oder sind die MySQL date/time Funktionen zu ungenau? :confused:

Falls dieses der Fall sein sollte, waere ich ueber einen Link etc dankbar, um das ganze nochmals ausfuehrlich nachzulesen.
Soweit mir bekannt ist, gibt keine der MySQL internen Funktionen einen UNIX-Timestamp aus, der aus einer ganzzahligen Zahl (Sekunden seit Anbeginn der UNIX-Epoche 1.1.1970 wenn ich nicht irre) besteht. Das Vorhandensein des Datums als Ganzzahl hat meiner Meinung nach enorme Vorteile beim Berechnen von Differenzen und bestimmen von "früher" oder "später".

Die MySQL internen Funktionen hingegen liefern fast immer das Datum in irgendwelchen mehr oder minder sinnvollen DDMMYYYYHHMM Formaten, die meiner Meinung nach einfach nur krampfhaft zu handlen sind.
 
Original geschrieben von Tim Comanns
Die MySQL internen Funktionen hingegen liefern fast immer das Datum in irgendwelchen mehr oder minder sinnvollen DDMMYYYYHHMM Formaten, die meiner Meinung nach einfach nur krampfhaft zu handlen sind.

PHP:
$sql = 'INSERT INTO (LoL) VALUES (FROM_UNIXTIME('.time().'))';

$sql = 'SELECT UNIX_TIMESTAMP(LoL) FROM.....blah...';

Ich find die MySql Zeitklamotte auch nioch so doll aber schwer zu handlen sind die nicht...
 
Original geschrieben von Tim Comanns
Das Vorhandensein des Datums als Ganzzahl hat meiner Meinung nach enorme Vorteile beim Berechnen von Differenzen und bestimmen von "früher" oder "später".

Die MySQL internen Funktionen hingegen liefern fast immer das Datum in irgendwelchen mehr oder minder sinnvollen DDMMYYYYHHMM Formaten, die meiner Meinung nach einfach nur krampfhaft zu handlen sind.
Hm, warum? Du kannst Doch innerhalb MySQL prima mit Funktionen wie z.b. DATE_ADD oder DATE_SUB Datumsberechnungen anstellen. Und diese Funktionen erwarten nunmal das Standartdatumsformat YYYY-MM-DD.
 
Na, ist doch klar!
Die meisten Berechnungen werden doch nunmal mit PHP gemacht.
Und dann wäre es doch wirklich sehr umständlich, das Datum extra von MySQL zu PHP zu konvertieren.
Außerdem lässt das PHP-Format ein kleineres Format zu (braucht beim Typ int ja nur 4 Byte), wenn ich mich jetzt nicht täusche.
Das ist zwar nicht soviel, dass man erstaunt ist, wieviel WebSpace man doch tatsächlich hat - aber immerhin. ;)
 
Zurück