Aller au contenu

recherche entre deux dates


Sujets conseillés

Posté

bonjour à tous,

voila ce qu'il me retourne quand je debug avec ta methode spidetra :

string(91) "SELECT * FROM coll_printer_commande WHERE print_date BETWEEN '2006-05-05' AND '2006-05-05'" resource(2) of type (mysql result) array(17) { ["id"]=> string(1) "1" ["print_date"]=> string(10) "2006-05-05" ["print_mark"]=> string(11) "HP Laserjet" ["print_modele"]=> string(17) "2200 Series PCL 6" ["print_type"]=> string(5) "Laser" ["noir"]=> string(6) "C4096A" ["nbr_noir"]=> string(1) "2" ["tarif_noir"]=> string(1) "0" ["cyan"]=> NULL ["nbr_cyan"]=> NULL ["tarif_cyan"]=> string(1) "0" ["magenta"]=> NULL ["nbr_magenta"]=> NULL ["tarif_magenta"]=> string(1) "0" ["jaune"]=> NULL ["nbr_jaune"]=> NULL ["tarif_jaune"]=> string(1) "0" } int(3)

pour les parenthese c'est testé mais ca ne change rien.

Posté

Salut Elrick,

Vérifie quelles sont les options de conversion de dates que tu as avec mysql

Pour faire la même chose, avec SQL server, j'utilise en effet la conversion des chaînes jj, mm, aa vers le format timestamp

SELECT * FROM Orders

WHERE (CONVERT(smalldatetime,Ordertimestamp,101) >= CONVERT(smalldatetime,@order1,101) AND CONVERT(smalldatetime,Ordertimestamp,101) <= CONVERT(smalldatetime,@order2,101))

Chez moi l'option 101 est un format US, 102 ANSI, 103 français : jj/mm/aa

Au passage, bon courage pour l'indexation consommables / imprimante.... :sick:

Posté

tout a l'air ok au niveau de la requête et de ce qui est retourné.

Le pb est plus bas.

- variable mal othographié ?

- pb dans la boucle ?

- autres...

Posté (modifié)

Essaie en remplaçant dans ton affichage les variables $row_Recordset['xxxx'] par $row_Recordset["xxxx"] ? (simple quote remplacés par des doubles quote, j'y crois pas trop mais bon...)

Modifié par Jeromnimo
Posté

La réponse de robinsonvendredi m'a fait pensé qu'effectivement peut être la requete est juste et tous le code aussi mais que mon format date est pas bon donc j'ai fait un petit test j'ai modifié mon champ print_date en bigint et j'ai laissé les années 2005 et 2006 uniquement.

et quand j'ai testé et bien HO MIRACLE ca passe j'ai pu trié sur 2005 sur 2006 et de 2005 à 2006

tout c'est bien passé !!!

Donc sois c'est dans ma requete qu'il comprend pas que c'est un format date sois c la bdd qui est pas bien faite sur se champs.

et je suis désolé robinsonvendredi mais je comprend pas bien ce que je dois faire avec les converts en fait si je te donne mon code tu peut me le modifier ?

Merci

Posté
si je te donne mon code tu peut me le modifier ?

Non désolé.

En fait l'idée c'est de faire un split de chaque date en récupèrant 'jj' , 'mm', et 'aaaa' séparément en format string.

C'est facile à faire, quelque soit l'encodage de ta page, la version française ou dans une autre langue de ton site, ou les variables locales de ton serveur.

Ensuite tu les passes en variable dans ta requête SQL en convertissant la chaîne 'aaaa' 'mm' 'jj' selon la collation de ton serveur SQL.

Vois la doc Mysql sur la conversion des formats de dates.

Posté

C'est etrange parce que dans le resultat de la requete que tu as mis suite à la demande de Spidetra, il y a bien un resultat exploitable... Par contre c'est voulu que la date de début soit égale à la date de fin ou c'est une faute d'inatention ? Si c'est pas voulu, tu peux refaire l'essai avec deux dates différentes, pour verifier que tu as un resultat ?

Pour la documentation de mysql sur les dates c'est ici :

http://dev.mysql.com/doc/refman/4.1/en/data-types.html

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...