Tri sur une date entière

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 : Tri sur une date entière

par Reel Big Spike » 12 août 2005, 14:13

Aucun problème, mais je préférais ne rien dire de peur de vous effrayer.

J'utilise une base Access... 95...

Désolé, mais bien obligé, ordre de l'employeur... :D

Bon, j'en rajoute, mais toujours est il que c'est sous une base Access 95 que je vais récupérer mes informations.

par pjl » 12 août 2005, 13:37

Et si tu nous disait déjà quel type de base de données tu utilises.

par Reel Big Spike » 12 août 2005, 13:31

@Raptor : Non, ça donne toujours la même chose. Visiblement, il ne me reconnaît pas la fonction TO_DATE

@ ouckileou : Moui. J’ai quelque messages d’erreurs qui apparaissent parfois si je laisse mon champ au format date. J’ai eu beau chercher, je ne vois pas d’où ça vient. Et comme ma base de données est TRES conséquente, c’est ingérable autrement. C’est trop instable pour être efficace dans mon cas.

par ouckileou » 12 août 2005, 12:52

il y a une raison à stocker les dates dans un champ texte ?

le format DATE : aaaa-mm-jj est justement pour trier les dates correctement ...

par raptor » 12 août 2005, 11:44

Quel est ton sgbdr ?

Et comme ca ca donne quoi :

Code : Tout sélectionner

$selectInfoClient = ("SELECT NumId, Client, Date,TO_DATE(Date,'DD/MM/YYYY') as Date2 FROM Client ORDER BY Date2 DESC")

@+

par Reel Big Spike » 12 août 2005, 11:42

Mmmh, étrange, il ne me reconnaît pas la fonction TO_DATE. J'ai droit à un joli :
Fonction 'TO_DATE' non définie dans l'expression
Ma requête donne ceci :

Code : Tout sélectionner

$selectInfoClient = ("SELECT NumId, Client, Date FROM Client ORDER BY TO_DATE(Date,'DD/MM/YYYY') DESC") $reselectAstr = odbc_exec($connexion,$selectAstr) or die("Ne peut pas exécuter la requête.") ;

par raptor » 12 août 2005, 11:34

Bah :

Code : Tout sélectionner

$selectInfoClient = ("SELECT NumId, Client, Date FROM Client ORDER BY TO_DATE(Date,'DD/MM/YYYY') DESC") ;

@+

par Reel Big Spike » 12 août 2005, 11:28

Mmmh...

J'ai bien trouvé la fonction mktime, qui me permettrait de trier mes date par ordre décroissant en fonction du nombre de secondes retournées, mais ça me semble un peu brutal...

D'autant que je ne peux pas utiliser mktime directement dans ma requête de sélection, bien évidemment.

Je me vois mal convertir à chaque fois toutes les dates sous forme de secondes, et les enregistrer dans ma table...

par raptor » 12 août 2005, 11:14

Il faut que tu convertisses Date dans la requete. Il y a des fonctions pour cela.

@+

Tri sur une date entière

par Reel Big Spike » 12 août 2005, 10:21

Voici mon petit souci :

Je dispose d’une requête qui fait une sélection sur des informations concernant mes clients, et qui ensuite affiche les occurrences retournées sous forme de tableau. Voici ma requête :

Code : Tout sélectionner

$selectInfoClient = ("SELECT NumId, Client, Date FROM Client ORDER BY 3 DESC") ; $reselectInfoClient = odbc_exec($connexion,$ selectInfoClient) or die("Ne peut pas exécuter la requête.") ;
On peut voir que je fais un tri par ordre décroissant sur la date. Seulement, lorsque je fais mon tri, celui ci ne s’effectue que sur le jour de ma date, et pas sur ma date entière. C’est à dire que lorsque je verrais mon tableau, j’aurais sur la première ligne 31/12/2005, puis 31/05/2005, puis 30/10/2005, puis 29/12/2005.

Mes dates seront rangées juste sur le jour, et du coup, je me retrouve avec des mois emmêlés, avec un mois de mai entre un mois d’octobre et de décembre par exemple.

Comment faire pour que mon tri se fasse sur toute la date, et pas seulement sur le jour ?

A savoir que dans ma base, j'ai mis le champ date au format texte.