Ik wil sorteren op datum met een script, maar dat kan niet want als je hem helemaal wilt sorteren moet je hem in mysel op INT zetten (zover ik weet), maar als ik dat doe slaat hij bij het volgende: 03-10-04 bij mij alleen 2 op, hoe kan ik dit anders doen?
Door je datum op te slaan als date("U");
dit geeft de datum weer in seconden sinds 01/01/1970, en zo kan je dan ordenen van klein naar groot...
Uitlezen doe je bvb zo:
<?
echo date("d/m/Y \o\m H:i", $jedatuminUformaat);
?>
Je kan sorteren met mysql door het in unixtime formaat te selecteren.

Ongeveer wat rafel zegt, maar ik raad je wel aan om het gewoon in date of datetime in mysql op te slaan. Hierdoor is het nog mogelijk om gebruik te maken van de vele date functies in mysql.
Het zelfde effect heeft:

select unixtime(datumkolom) from tabel

Dan krijg je een nummer, die je met de functie van rafael in kan voeren als 2e argument voor date().
wat je moet doen als je je huidige datum formaat wilt blijven hanteren is met SUBSTRING werken..

<?
$sql = "SELECT ";
$sql .= "SUBSTRING(datum, 1, 2) as day, ";
$sql .= "SUBSTRING(datum, 4, 2) as month, ";
$sql .= "SUBSTRING(datum, 7, 2) as year, ";
$sql .= "* ";
$sql .= "FROM tabel_naam ORDER BY ";
$sql .= "year DESC, month DESC, day DESC";
$res = mysql_query($sql) or die(mysql_error());
?>

zoiets :)
ipv SUBSTRING(datum, 1, 2) AS day kun je ook DATE_FORMAT(datum, '%d') AS day gebruiken

Reageren