Page 1 sur 1
Pb SQL date
Posté : 14 juin 2008, 08:55
par hashut
Bonjour,
j'ai un petit blem.
je voudrais classée les donne sql par date
pour classer par par ordre croissant ou decroissant pas de blem
mais je n'arrive pas a les classe
de la plus prés de la date du jour à la plus lointaine
$db = mysql_connect($serveur, $user, $passw);
mysql_select_db($base, $db);
$sql = "SELECT * FROM USER ORDER BY CREATION_TIME ";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
comment faire pour que creation_time soit classe de la date du jour à la plus lointaine
merci
Posté : 14 juin 2008, 09:30
par sadeq
Rien de plus simple mon cher hashut, tu fais un classement par ordre décroissant sur le champ CREATION_TIME. Mais à condition que ce champ soit de type DATETIME dans la base de données pour que le classement soit juste.
Requête :
Posté : 14 juin 2008, 10:00
par hashut
Non je veut pas le classe en decroissant ni croissant je veut le classe
de la date la plus pres de celle du jour à la plus lointaine
c'est a dire par exemple on ai au mois de juin donc de
juin à mai
en juillet
de juillet a juin ext .....
Posté : 14 juin 2008, 10:09
par Ryle
De la date la plus récente (qu'elle soit du jour ou dans 10 ans) à celle la plus ancienne (qu'elle soit du mois dernier où d'il y a 8 siècles), ca veut dire de la plus grande à la plus petite, et ca s'appelle bien un classement descendant.
Si ensuite tu veux limiter pour n'avoir que les dates inférieure à aujourd'hui, tu rajoutes une condition dans la clause WHERE de ta requête pour filtrer les enregistrements trouvés et ne retourner que ceux qui sont inférieur à la date du jour.
Idem si tu veux te limiter au dernier mois, tu rajoutes une autre condition.
Si cela peut t'aider, pour manipuler des champs de type date, tu peux utiliser les fonctions NOW(), MONTH(), YEAR() etc.
Posté : 14 juin 2008, 10:14
par sadeq
Mais c'est ça l'ordre décroissant des dates que tu décris.
Quand on est en juin ça classe de juin à mai ect ...
Et si on est en juillet ça de juillet à juin ext ...
Si tu ne veux pas les "éventuelles dates" futures (ce qui serait une erreur de saisie) tu ajoute la condition : WHERE CREATION_TIME <= Now()
Posté : 14 juin 2008, 12:25
par caroube
Pour avoir la différence de jour entre la date de création et aujourd'hui
qui te donne donc des nombres de jours négatifs pour les dates passées et des nombres positifs pour les dates à venir.
et donc ensuite
qui te donne la "distance" en jours entre la date de création et aujourd'hui, que cette date soit passée ou à venir
http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html
Posté : 14 juin 2008, 16:22
par hashut
Merci c'est OK
$date_jour=date("2007-m-d H:i:s");
$sql = "SELECT * FROM USER WHERE CREATION_TIME >= '$date_jour' order by CREATION_TIME ASC";
merci ALL