PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verwendung von date_format



fabter
26-07-2006, 15:35
Hallo,

ich habe folgenden PHP + MySQL-Code:

$query = "select date, title from table order by date limit 1;";
Nun würde ich das Datum aber gerne mit dem MySql-Befehl date_format formatieren. Doch wenn ich den Befehl dort einbaue, funktioniert es nicht mehr. Kann mir jemand sagen, wie ich den Befehl richtig benutze? Das wäre echt super.

quinte17
27-07-2006, 09:53
$query = "select date_format(date, '%a - %H:%i') as date, title from table order by date limit 1;";

sollte gehen (nicht getestet)

greetz

fabter
27-07-2006, 11:49
Danke Dir quinte17, das läuft so, bringt aber einen anderen Fehler mit sich.
Ich formatiere die Daten wie folgt:

28.7.
1.8.
31.7.
6.8.
Doch da die sort-Funktion erst nach der Formatierung der Daten aufgerufen wird, werden die Daten nun auch nicht mehr richtig sortiert.
Weiß da jemand Rat?

Der Code sieht genauso aus wie bei quinte17.

EDIT:
Ich habs schon herausgefunden. Ich muß nur die order-Funktion wie folgt ändern:

order by date_format(date, '%Y-%m-%d')
Also dann nochmal vielen Dank!

quinte17
27-07-2006, 12:46
$query = "select date_format(date, '%a - %H:%i') as date_format, title from table order by date limit 1;";

für date nochmal format zu verwenden macht des halt alles langsamer...
in php musst du halt dann auf die spalte "date_format" zugreifen...

greetz

Turbohummel
27-07-2006, 15:28
Das Aliase die Query langsamer machen, war in MySQL 3 so, inzwischen aber nicht mehr.

quinte17
27-07-2006, 21:05
es ging hier nicht um aliase die etwas langsamer machen...
es ging um den order by date_format(...)

greetz

Turbohummel
28-07-2006, 06:04
Das tut auch nix, weil er merkt, dass er das 2 mal braucht, und berechnet das nur 1 mal und arbeitet dann mit einem "internen" Allias. Sonst würd ja sowas auch net gehen:

SELECT SUBSTR(feld, 1, 3) FROM dada
GROUP BY SUBSTR(feld, 1, 3);

mwanaheri
28-07-2006, 07:13
er braucht es aber doch nicht zwei mal. Es muss ja nicht das Feld, nach dem sortiert wird, in der select-Anweisung stehen.

select vorname,nachname
from personen
order by geburtstag;

funktioniert ja auch.