[mysql] problèmes de date

Répondre
longshot
le 25/03/2010 à 08:56
longshot
Hello

Dans ma table sql j'ai un champ dateDebut et dateFin.

Tout en le faisant en sql, j' aimerais trouver si cette intervalle est compris entre dateRechercheDebut et dateRechercheFin

par ex:
WHERE 'dateDebut' >=UNIX_TIMESTAMP('2010-3-18 00:00:00') AND 'dateDebut' <=UNIX_TIMESTAMP('2010-3-18 23:59:59')

Si je fait cela, je peux effectivement trier si dateDebut ce trouve dans l intervalle des dates
" >= <= "


mais en admettant que ma date de début soit le 1-01-2010 et celle de fin 7-01-2010
il me faut aussi les enregistrements du 2-01-2010, 3-01-2010 etc...

Merci d'avance
moogli
le 25/03/2010 à 10:19
moogli
salut,


a tu essayé beetwen ?

ex : champ1 beetwen 28 and 82

@+
Il en faut peu pour être heureux !!!!!
longshot
le 25/03/2010 à 10:31
longshot
cela fonctionne, mais je n'ai pas de difficultés à vérifier si la valeur de date d'un champ est contenu entre deux dates. Mais vraiment des dates de champ1 et champ2 contenu entre date1 et date2

(champ1 interval champ2) beetwen XX and YY

Typiquement pour un blog si on veut afficher les articles qui ont été valides durant un laps de temps X - Y.
moogli
le 25/03/2010 à 11:03
moogli
peut tu nous montrer le create table de la table en question ?

si tu souhaite avoir les dates durant un intervalle ça devrais fonctionner.

@+
Il en faut peu pour être heureux !!!!!
longshot
le 25/03/2010 à 11:52
longshot
mes ce sont les timestamp de dateDebut et dateFin qui sont enregistré dans ma db.

faire la recherche du where que j'ai mis en exemple fonctionne parfaitement, mais est limitée a "si dateDebut et contenu entre les deux dates".

Or que moi je cherche plutôt cela:
"si l'interval dateDebut et dateFin et contenu entre les deux dates".
LA GLOBULE
le 25/03/2010 à 12:01
LA GLOBULE
Il te faut faire plusieurs conditions dans ton WHERE, tu n'as pas le choix.

Liste tous les cas possibles de chevauchement de dates, et traduis les en SQL.

PS : tu aurais pu stocker tes dates au format DATETIME, ca t'aurait éviter des conversions (meme si je suis d'accord mysql les stocke en interne avec un timstamp).
moogli
le 25/03/2010 à 12:08
moogli
en gros tu veut savoir si les deux date de la table sont dans l'interval
donc
si dateDebut et Datefin sont supérieur à date1 ET inférieur à date2

docn ajouter la condition sur date fin dans la requete soit deux fois ce que tu a mis !

@+
Il en faut peu pour être heureux !!!!!
moogli
le 25/03/2010 à 12:09
moogli
ppff je suis trop lent me suis fait gratter :)
Il en faut peu pour être heureux !!!!!
longshot
le 25/03/2010 à 12:18
longshot
Effectivement cela aurai été plus simple a comprendre si j avais mis cela: je cherche a savoir si au moin une des date dans l'interval dateDebut et dateFin ce trouve dans l interval 10.3.2010 au 21.3.2010

PAr contre, lister tout les cas possibles comme je ne les connais pas a l'avance me parait difficile surtout que je suis un peu tétu et que je ne veux pas utilisé de boucle en
php...

Merci quand meme du temps que vous m'avez consacré bonne journée
LA GLOBULE
le 25/03/2010 à 12:37
LA GLOBULE
Ben y'en as pas 50 des cas possibles.

Si j'ai bien compris, tu en as 4 :
1) date_debut et date_fin sont dans l'intervalle
2) date_debut est avant le début de l'intervalle et date_fin est après la fin de l'intervalle
3) date_debut est avant le début de l'intervalle et date_fin est avant la fin de l'intervalle
4) date_debut est après le debut de l'intervalle et date_fin est après la fin de l'intervalle
Répondre
LoadingChargement en cours