Selecton entre deux date

Résolu
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012 - 3 sept. 2007 à 10:50
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012 - 4 sept. 2007 à 11:34
Bonjour,
je stock dans la base de données une date dans un chaps varchar sous forme de :  date("d/m/y"); // par exemple 03/09/07

alors je veux que lorsque je fasse une recherche entre deux date, par exemple 01/09/07 et 04/09/07, j affiche les resultats trouvés entre ces deux dates.

est ce que le faite que je fasse une requette comme ça : " ........ where  date_cre between "01/09/07" and "04/09/07" ? ça va marcher ou je dois utiliser une fonction de php de time ...

Merci pour vos aides.

N'importe où. 
mais là où il le faut.

5 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
3 sept. 2007 à 11:43
Salut,

non ça ne marchera pas si tes dates sont stockées comme des chaînes (char/varchar). Il vaut mieux les stocker comme des DATE, là ça marchera.

A la limite, en varchar, ta requêtedevrait pouvoir marcher en faisant     where date > 2007/06/03 and date < 2007/06/20 mais il faudrait stocker la date sous ce format.

à+
3
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
4 sept. 2007 à 11:14
Hello,

strftime( ) fait tout ça :)
3
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
4 sept. 2007 à 11:34
oui tu as raison mais il me fallait :
strftime("%d-%m-%Y",strtotime($date_)) pour avoir jj-mm-yyyy

MErci pour vos aides
N'importe où. 
mais là où il le faut.
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
3 sept. 2007 à 21:02
Salut

tu devrais convertir tes dates en un format plus catholique... c'est debile de stoquer une date dans un format fait pour du texte alors que t'as un format qui existe pour les dates...

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
4 sept. 2007 à 10:35
Bonjour,
merci pour vos reponses,
alors j'ai fait la solution suivante :
j ai modifié le champs varchar par un champs de type Dates.
j ai modifié tout mon code pour que ça ça marche
j ai utilisé between au niveau de la requette de comparaison

mais j ai un petit ceci au niveau de l affichage, j aficche au format englaise aaaa-mm-jj.
mais je veux comme ça : jj-mm-aaaa.
vais-je utiliser :

$date_ = '01/09/07';
$jour = substr($date_, 0, 2); // jour
$mois = substr($date_, 3, 2); // mois 
$annee = substr($date_, 6, 4); // annee

merci de me dire comment faire, car je veux pas que a chaque fois j utilise le code si-dessus, alors une fonction, qui a comme argument la date, peut faire l affaire ?

N'importe où. 
mais là où il le faut.
0
Rejoignez-nous