Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1435 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  problème de Date lorsque l'intervalle est à cheval sur 2 mois...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de Date lorsque l'intervalle est à cheval sur 2 mois...

n°1115701
niiico
Niiiiiiiiiiiiiico !!!
Posté le 10-06-2005 à 14:08:39  profilanswer
 

salut à tous !
j'ai une fonctionnalité de recherche qui donne la possibilité de trouver des enregistrements selon leur date, à plus ou moins X jours. Ca fonctionne à peu près mis à part pour un cas particulier : prenons un exemple
j'ai un enregistrement daté au 26/11/2005, je fais une recherche à la date du 27/11/2005 à plus ou moins X jours. Si X = 1 alors pas de problème, l'enregistrement est trouvé. Pas de problème jusqu'à X = 3. Le problème arrive quand on change de mois.
La requete ... and date_rappel>#26/11/2005# and date_rappel<#28/11/2005# marchera alors que la requete ... and date_rappel>#22/11/2005# and date_rappel<#02/12/2005# ne marchera pas...quelqu'un a une idée ?
j'allais oublier, je ne sais pas si c'est important mais je travaille avec Access et ASP pour l'interface

mood
Publicité
Posté le 10-06-2005 à 14:08:39  profilanswer
 

n°1115734
denzz
huhuuuuu ! (désolé )
Posté le 10-06-2005 à 14:21:03  profilanswer
 

c'est toujours important de préciser avec quel SGBD on travaille ;)  
 
tu devrais te pencher sur la documentation de access et les fonctions de date, tous les sgbd en proposent donc je pense qu'access aussi (je c pas je l'utilise pas ;) )  
il doit exister des fonctions genre date_add() avec lesquelles tu peux ajouter un certain nombre de jours, de mois ,d'années .. que sais-je de millénaires ? à une date donnée, et ca te gère très bien les changement de mois, etc
sinon des fonctions de comparaison de dates sont surement disponibles aussi, et apparemment tu ne les utilise pas ?  
je c pas, j'espère avoir compris ton pb :)

n°1115746
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-06-2005 à 14:28:22  profilanswer
 

et un between c'est mieu que des > et < qui se baladent à toutes les sauces :o

n°1115749
mrbebert
Posté le 10-06-2005 à 14:28:56  profilanswer
 

Vu la manière dont sont écrits les exemples, j'ai l'impression que tu travailles sur des champs "texte" plutôt que sur des champs "date" ? :whistle:
 
edit : nan, en fait avec Access, on peut avoir les dates dans ce format. Mais il faut quand même bien définir les champs avec le type "date".


Message édité par mrbebert le 10-06-2005 à 14:31:05
n°1115754
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-06-2005 à 14:30:43  profilanswer
 

Ben nan, avec des #, c'est bien reconnu comme des dates.
 
Par contre, vu le comportement, en effet, dans la base, c'est pas sur que ce soit des dates...

n°1115763
niiico
Niiiiiiiiiiiiiico !!!
Posté le 10-06-2005 à 14:34:54  profilanswer
 

non vous n'avez pas compris...(ou alors c'est moi qui m'exprime mal :whistle:)
la fonction DateAdd je l'utilise, ce que je vous ai copié collé c'est le résultat final, c'est-à-dire un bout de la chaine de caracteres dont je me sert pour ouvrir le resultSet
voila mon code :

Citation :

chaine = chaine & " and date_rappel>#" & DateAdd("d",-(Request.Form("cb_date_rappel" )),Request.Form("tf_date_rappel" )) & "# and date_rappel<#" & DateAdd("d",Request.Form("cb_date_rappel" ),Request.Form("tf_date_rappel" )) & "#"


 
je travaille bien sur des champs date
et pour les between j'ai essayé mais soit ca ne marche soit je ne sais pas m'en servir...
 
en tout cas merci pour votre rapidité de réponse ;)

n°1115765
niiico
Niiiiiiiiiiiiiico !!!
Posté le 10-06-2005 à 14:36:25  profilanswer
 

Arjuna a écrit :

Ben nan, avec des #, c'est bien reconnu comme des dates.
 
Par contre, vu le comportement, en effet, dans la base, c'est pas sur que ce soit des dates...


 
les champs de la base sont bien au format Date...

n°1115767
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-06-2005 à 14:38:32  profilanswer
 

Soit le format de date est différent entre ASP et Access (étrange) soit dans ta base Access, c'est pas une date.
 
Parceque ton code est bon, et le fonctionnement est correct.
 
Utilisation du bidule... euh... du between :

Code :
  1. SELECT bidule
  2. FROM machin
  3. WHERE truc BETWEEN chouette AND chose

n°1115769
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-06-2005 à 14:39:35  profilanswer
 

niiico a écrit :

les champs de la base sont bien au format Date...


ben c'est bizarre ton bidule, parceque entre #, Access sait que tu lui passes des dates, donc mise à part s'il fait un tri ablpabétique, y'a pas de raison que ça ne marche pas.

n°1115771
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-06-2005 à 14:40:22  profilanswer
 

tu peux toujours utiliser la fonction cdate() (dans la requête, pas dans l'asp) histoire de forcer access à bien comprendre que c'est une date que tu lui passes entre #

mood
Publicité
Posté le 10-06-2005 à 14:40:22  profilanswer
 

n°1115781
niiico
Niiiiiiiiiiiiiico !!!
Posté le 10-06-2005 à 14:46:59  profilanswer
 

j'ai essayé cdate() et ca ne change rien...est il possible qu'il y ait un probleme de conversion date francaise/date us ?

n°1115820
denzz
huhuuuuu ! (désolé )
Posté le 10-06-2005 à 15:08:14  profilanswer
 

s'il y avait un pb de conversion , je pense qu'il te gueulerait dessus vite fait ;) dans ton exemple en plus , 28 n'est pas un mois existant donc ca me paraîtraît bizarre....
 
enfin bon, vu que je ne maîtrise ni l'asp ni access, je v me taire :)

n°1115833
niiico
Niiiiiiiiiiiiiico !!!
Posté le 10-06-2005 à 15:14:34  profilanswer
 

mwé...c'est quand meme louche tout ca...

n°1115935
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-06-2005 à 16:22:28  profilanswer
 

j'y ai pensé aussi à la conversion...
 
mais en plus, l'ASP tournant logiquement sur ma même machine qu'Access, et chacun des deux tournant sous la même session, et utilisants tous deux les paramètres de la session pour le format de date, j'ai du mal à concevoir qu'ils puissent ne pas se comprendre à ce niveau là :)

n°1116556
niiico
Niiiiiiiiiiiiiico !!!
Posté le 11-06-2005 à 11:42:19  profilanswer
 

personne d'autre n'a une petite idée ?

n°1118173
niiico
Niiiiiiiiiiiiiico !!!
Posté le 13-06-2005 à 12:15:55  profilanswer
 

j'ai un peu rebidouillé tout ca et maintenant je suis certain de la source du probleme : c'est bien une histoire de format de date. En effet, between #25/05/2005# and #04/06/2005# me sortira les enregistrements du 6 avril au 25 mai...
donc comment faire comprendre que le format est francais ?


Message édité par niiico le 13-06-2005 à 12:28:51
n°1118294
denzz
huhuuuuu ! (désolé )
Posté le 13-06-2005 à 13:53:18  profilanswer
 

prend le problème à l'envers si tu ne peux pas répondre à ta question ..  
comment transformer faire tes tests avec des dates au format anglais ?  
 :)

n°1118298
niiico
Niiiiiiiiiiiiiico !!!
Posté le 13-06-2005 à 13:56:03  profilanswer
 

euh...quoi ?
tu veux dire que je dois faire mes trucs en travaillant au format anglais ?

n°1118302
denzz
huhuuuuu ! (désolé )
Posté le 13-06-2005 à 14:01:41  profilanswer
 

pas forcément :) mais tu peux les convertir juste pour faire ta requête non ?  
d'ailleurs est-tu sûr que en mettant dans ta base 04/06/2005 dans un champ date, il ne considère pas qu'il s'agit du 6 avril 2005 ?

n°1118357
niiico
Niiiiiiiiiiiiiico !!!
Posté le 13-06-2005 à 14:50:26  profilanswer
 

ca marche !
merci à tous pour vos réponses !
 
je mets le code de conversion au cas ou quelqu'un aurait le meme probleme que moi :  

Citation :


date_deb = DateAdd("d",-(Request.Form("cb_date_rdv" )),Request.Form("tf_date_rdv" ))
date_deb = month(date_deb) &"/"& day(date_deb) &"/"& year(date_deb)
date_fin = DateAdd("d",Request.Form("cb_date_rdv" ),Request.Form("tf_date_rdv" ))
date_fin = month(date_fin) &"/"& day(date_fin) &"/"& year(date_fin)
chaine = chaine & " and date_rdv between #" & date_deb & " 00:00# and #" & date_fin & " 23:59#"


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  problème de Date lorsque l'intervalle est à cheval sur 2 mois...

 

Sujets relatifs
probleme de conversionProbleme de cache
Grave probleme en Java, EclipseProbleme avec fonction include
Renommer un rep avec la date du jour[ JEXCEL/JXL] Problème lors de la création d'une feuille (sheet)
Probleme avec l'AUTOFLUSH !!!problème de menu en flash...,
Afficher la veille du jour en fin de mois ? avec getdate()Gros problème <input type='file'>!!!!
Plus de sujets relatifs à : problème de Date lorsque l'intervalle est à cheval sur 2 mois...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR