Format de date - BETWEEN

Résolu
aGeS67
Messages postés
14
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
13 mars 2009
- 2 févr. 2009 à 10:34
monaliali
Messages postés
3
Date d'inscription
dimanche 16 juillet 2006
Statut
Membre
Dernière intervention
16 avril 2013
- 16 avril 2013 à 20:56
Bonjour,

Je travail avec une base de donnée Access et utilise une requête between qui ne me retourne pas toujours les valeurs exactes, surement du à un mauvais format de date, au niveau des mois plus particulièrement, voici ma requête :

SELECT NomPeriode
FROM Dates
WHERE Datevalue('" + cl2.recupdates + '") BETWEEN DateD and DateF

Avec pour format de date :  'dd/mm/yyyy'

Les valeurs retournées pour le 1er moi sont correctes seulement cette requête me retourne les même valeurs pour les prochains moi en décalant de 1 ou 2 journée les plages de dates alors qu'elle devrait me retourné une requête vide.

Si quelqu'un a une idée sur le bon format de date à utiliser ou autre conseil,

Merci d'avance

3 réponses

aGeS67
Messages postés
14
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
13 mars 2009
2
13 mars 2009 à 16:11
Oups je m'en excuse mais le format n'est pas "MM/dd/yyyy" mais "dd/MM/yyyy", cette erreur est du à un mauvais type de champs dans la base de donnée (types date en texte). Et bien sur ne pas négliger les majuscules MM pour convertir par exemple.
3
aGeS67
Messages postés
14
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
13 mars 2009
2
6 févr. 2009 à 16:59
C'est bon ! Pour ceux qui aurait le même problême la fonction BETWEEN marche sous access avec le format "MM/dd/yyyy".
0
monaliali
Messages postés
3
Date d'inscription
dimanche 16 juillet 2006
Statut
Membre
Dernière intervention
16 avril 2013

16 avril 2013 à 20:56
Merci bcp aGeS67, votre réponse m'a résolu un problème que j'ai passé 10 jours à recherche la solution.
Je confirme bien, Access prend en charge les dates sous la forme dd/MM/yyyy, cependant VB6 les prend sous la forme MM/dd/yyyy.
Pour remedier à ce problème, il suffit de convertir les dates extraites de la base de données Acces comme suit :
"select * from table WHERE champ_date BETWEEN #" & Format(date1,"MM/dd/yyyy") & "# AND #" & Format(date2,"MM/dd/yyyy") & "#",cn,1,2


Merci infiniment
0