|
|
|
|
Comment faire pour comparer deux champs dates
Dernière réponse le 7 aoû 2004 à 18:36:26 Moby, le 5 aoû 2004 à 23:07:46Bonjour,
Je ne sais pas de requete sql qui me permete de comparer deux champs date. Par exemple un champ date debut et un champsdate fin (je decide un tarif d'une chambre d'hotel du 01/08/2004 champ 1 au 30/09/2004 champ 2 au tarif de 64 €) la requete doit me permettre de resortir le tarif de 64 € si la demande faite de du 05/08 au 09/08 alors la requete doit rechercher entre 01/08 et 30/09 pour me donner 4 * 64 €
Merci de votre aide
Table date_debut avec les champs id_date_debut ; date_debut
|
select id_tarif from tarif, date_debut, date_fin where date_debut.id_date_debut = date_debut.id_date_debut and date_fin.id_date_fin = date_fin.id_date_fin and date_passée_en_paramètre between date_debut and date_fin Mais cela dit, pour n'avoir qu'une date dans les deux tables date_debut et date_fin, pourquoi ne pas mettre directement les dates dans la table tarif ? Au niveau mémoire, c'est à peine plus, et pour les perfs et la différence de boutot, ça risque de faire la différence... Michael. Ne vous souciez pas de n'être pas remarqué ; cherchez plutôt à faire quelque chose de remarquable [Confucius] |
select id_tarif from tarif, date_debut, date_fin where date_debut.id_date_debut = date_debut.id_date_debut and date_fin.id_date_fin = date_fin.id_date_fin and date_debut.date_debut >= param1 and date_fin.date_fin <= param2 où param1 et param2 viennent de tes listes déroulantes. C'est clair ? Michael. Ne vous souciez pas de n'être pas remarqué ; cherchez plutôt à faire quelque chose de remarquable [Confucius] |
Le probleme est:
|
OK, ca se précise.
date_deb date_fin prix -------- -------- ------ 01/08/04 31/08/04 64eur 01/09/04 30/09/04 45eur Si tu demandes du 5/8 au 15/8 => 64 eur du 25/8 au 4/9 => 64 eur du 5/9 au 25/9 => 45 eur C'est juste ? Ne vous souciez pas de n'être pas remarqué ; cherchez plutôt à faire quelque chose de remarquable [Confucius] |
OK, alors c'est comme ceci :
select id_tarif from tarif, date_debut, date_fin where tarif.id_date_debut = date_debut.id_date_debut and tarif.id_date_fin = date_fin.id_date_fin and date_debut.date_debut >= param1 and date_fin.date_fin <= param1 puisque la date de fin sélectionnée n'a pas d'importance ! Ne vous souciez pas de n'être pas remarqué ; cherchez plutôt à faire quelque chose de remarquable [Confucius] |
Oh hé !
select id_tarif from tarif, date_debut, date_fin where tarif.id_date_debut = date_debut.id_date_debut and tarif.id_date_fin = date_fin.id_date_fin and date_debut.date_debut <= param1 and date_fin.date_fin >= param1 :-) Ne vous souciez pas de n'être pas remarqué ; cherchez plutôt à faire quelque chose de remarquable [Confucius] |
Oui, mais là, tu changes les règles du jeu :-) (voir Post No 13 et 14)
|

