Order by Datum ... MYSQL Select

Hallo,
als MySQL Anfänger habe ich versucht aus einer Tabelle zwei Spalten (titel und datum) auszulesen und diese dabei nach eingabedatum zu sortieren.
select titel from buch order by datum
Leider werden die Einträge zwar nach datum aber nicht nach Uhrzeit geordnet. Der Datentyp für die Spalte Datum beträgt datetime.
Was mache ich falsch?
Vielen Dank für Eure Hilfe.

select titel from buch order by datum
Leider werden die Einträge zwar nach datum aber nicht nach
Uhrzeit geordnet. Der Datentyp für die Spalte Datum beträgt
datetime.
Was mache ich falsch?

keine ahnung, welche werte stehen denn drin?
und wie setzt du die werte der spalte?

keine ahnung, welche werte stehen denn drin?
und wie setzt du die werte der spalte?

Ich baue mir das aktuelle Datum mit PHP:

$tag=strftime("%d");
$monat=strftime("%m");
$jahr=strftime("%G");
$stunde=strftime("%H");
$minute=strftime("%M");
$sekunde=strftime("%S");
$zeit="$jahr-$monat-$tag $stunde:blush:minute:blush:sekunde";

Und führe einen Insert befehl aus.
Insert into buch values(’$titel’,’$zeit’)

Funtkioniert auch wunderbar, ich kann mir die datumsspalte ansehen, es stehen korrekte Datum und Zeit Werte drin. Nur mit dem sortierten Ausgeben klappt es nicht. Vielleicht ist datetime einfach die falsche Wahl? Danke schonmal.

keine ahnung, welche werte stehen denn drin?
und wie setzt du die werte der spalte?

Ich baue mir das aktuelle Datum mit PHP:

bissel umstaendlich nicht?

Und führe einen Insert befehl aus.
Insert into buch values(’$titel’,’$zeit’)

Funtkioniert auch wunderbar, ich kann mir die datumsspalte
ansehen, es stehen korrekte Datum und Zeit Werte drin. Nur mit
dem sortierten Ausgeben klappt es nicht.

zum nachvollziehen:

mysql\> create table titelzeit ( titel varchar(32), zeit datetime );
Query OK, 0 rows affected (0.00 sec)

mysql\> desc titelzeit;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| titel | varchar(32) | YES | | NULL | |
| zeit | datetime | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql\> insert into titelzeit set titel="foo", zeit=now();
Query OK, 1 row affected (0.03 sec)

mysql\> insert into titelzeit set titel="bar", zeit=now();
Query OK, 1 row affected (0.00 sec)

mysql\> select \* from titelzeit;
+-------+---------------------+
| titel | zeit |
+-------+---------------------+
| foo | 2004-04-05 13:36:30 |
| bar | 2004-04-05 13:36:35 |
+-------+---------------------+
2 rows in set (0.01 sec)

mysql\> select \* from titelzeit order by zeit desc;
+-------+---------------------+
| titel | zeit |
+-------+---------------------+
| bar | 2004-04-05 13:36:35 |
| foo | 2004-04-05 13:36:30 |
+-------+---------------------+
2 rows in set (0.01 sec)

mysql\>

es geht also. entweder schmeisst deine anwendung das ergebnis durcheinander, oder deine zeitangben sind falsch, oder du hast fuer zeit keine datetime verwendet.

Alles klar, Danke!