Pb SQL date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb SQL date

par hashut » 14 juin 2008, 16:22

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

par caroube » 14 juin 2008, 12:25

Pour avoir la différence de jour entre la date de création et aujourd'hui

Code : Tout sélectionner

DATEDIFF (CREATION_TIME, CURRENT_DATE)
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

Code : Tout sélectionner

ABS(DATEDIFF (CREATION_TIME, CURRENT_DATE))
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

par sadeq » 14 juin 2008, 10:14

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()

par Ryle » 14 juin 2008, 10:09

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.

par hashut » 14 juin 2008, 10:00

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 .....

par sadeq » 14 juin 2008, 09:30

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 :

Code : Tout sélectionner

SELECT * FROM USER ORDER BY CREATION_TIME desc;

Pb SQL date

par hashut » 14 juin 2008, 08:55

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