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

evenkil 35 Messages postés lundi 13 février 2006Date d'inscription 15 avril 2014 Dernière intervention - 21 juil. 2007 à 21:42 - Dernière réponse : rethenor 48 Messages postés mercredi 11 juillet 2007Date d'inscription 9 mai 2011 Dernière intervention
- 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

JulSoft 354 Messages postés dimanche 3 juin 2001Date d'inscription 11 mars 2013 Dernière intervention - 21 juil. 2007 à 21:47
+3
Utile
SELECT * FROM table WHERE start<'$date' AND end>'$date'

Pas testé mais je supose que ça doit marcher...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de JulSoft
evenkil 35 Messages postés lundi 13 février 2006Date d'inscription 15 avril 2014 Dernière intervention - 21 juil. 2007 à 21:52
0
Utile
Super !
Merci beaucoup :)
Commenter la réponse de evenkil
vilhjalms 591 Messages postés mercredi 20 juillet 2005Date d'inscription 16 juillet 2009 Dernière intervention - 22 juil. 2007 à 09:33
0
Utile
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
rethenor 48 Messages postés mercredi 11 juillet 2007Date d'inscription 9 mai 2011 Dernière intervention - 25 juil. 2007 à 17:45
0
Utile
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.