Algorithme php ou requete sql ? Probleme de date [Résolu]

Messages postés
35
Date d'inscription
lundi 13 février 2006
Dernière intervention
15 avril 2014
- - Dernière réponse : rethenor
Messages postés
48
Date d'inscription
mercredi 11 juillet 2007
Dernière intervention
9 mai 2011
- 25 juil. 2007 à 17:45
Bonjour,

J'aimerai pouvoir déterminer dans quelle tranche de période se situe une date donnée.

Je voulai savoir si il est possible de concevoir une requete sql pour interrogger directement la base de donnée ou bien est ce qu'il faut concevoir un algo en php ?

Voici ma table SQL :
CREATE TABLE `heber_chambres_prix` (
  `id` int(15) NOT NULL,
  `id_chambre` varchar(10) collate latin1_german2_ci NOT NULL,
  `start` date NOT NULL,
  `end` date NOT NULL,
  `prix` varchar(10) collate latin1_german2_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ;

Qu'en pensez vous ?

Merci beaucoup
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Dernière intervention
11 mars 2013
3
Merci
SELECT * FROM table WHERE start<'$date' AND end>'$date'

Pas testé mais je supose que ça doit marcher...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de JulSoft
Messages postés
35
Date d'inscription
lundi 13 février 2006
Dernière intervention
15 avril 2014
0
Merci
Super !
Merci beaucoup :)
Commenter la réponse de evenkil
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Dernière intervention
16 juillet 2009
1
0
Merci
Saell og blesuð

Ou alors il y a between cf : http://dev.mysql.com/doc/refman/5.0/fr/comparison-operators.html

example :


mysql>
SELECT 1 BETWEEN 2 AND 3;

-> 0
mysql>
SELECT 'b' BETWEEN 'a' AND 'c';

-> 1
mysql>
SELECT 2 BETWEEN 2 AND '3';

-> 1
mysql>
SELECT 2 BETWEEN 2 AND 'x-3';

-> 0


Vilhjálms
Sigurðsdóttir aka Frëyjá
Commenter la réponse de vilhjalms
Messages postés
48
Date d'inscription
mercredi 11 juillet 2007
Dernière intervention
9 mai 2011
0
Merci
La réponse de JulSoft est tout justifiée :
SELECT * FROM table WHERE start<'$date' AND end>'$date'


mais c'est à evenkil de mettre les bonnes valeurs dans la variable $date ou alors à faire en sorte que l'une des bornes (start ou end) puisse englober la date donnée:
...WHERE start<='$date' AND end>'$date'
ou
...WHERE start<'$date' AND end>='$date'
Si l'on s'en tient à la stricte infériorité ou supériorité, il se peut qu'une date ne soit pas prise en compte DANS la fourchette de dates si celle-ci est égale à l'une des bornes.


A moins qu'on veuille absolument que les deux bornes puissent l'englober :
...WHERE start<='$date' AND end>='$date'


mais dans ce cas, c'est à evenkil de savoir ce qu'il veut tester...
Commenter la réponse de rethenor

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.