Page 1 sur 3

requete SQL d'une date

Posté : 20 juin 2005, 09:13
par Pasti$
Bonjour,
d'abord excusez moi pour le titre du suejt mais il faut plusieurs lignes pour m'expliquer.

Je voudrais créer une requete (si possible) une requete SQL qui me permets de délimiter par le choix de 2 dates.
Pour etre plus précis, j'ai un questionnaire que les gens remplissent. Je veux établir des statistiques par semaine. Dans ma table j'ai un champ date.

Exemple : selectionne moi les totaux de ma table reponses pour les gens qui ont rempli le questionnaire du 21/06 au 28/06.

Voilà si vous voulez d'autres explications n'hésiter pas.
MERCI

Posté : 20 juin 2005, 09:58
par Pasti$
Si personne ne répond cela veut peut etre dire que je ne peux pas le faire !! :roll:

Posté : 20 juin 2005, 10:23
par zeus
Avec BETWEEN, tu doit pouvoir faire ce que tu veux

Code : Tout sélectionner

SELECT * FROM reponse_formulaire WHERE date BETWEEN 2005-21-06 AND 2005-28-06

Posté : 20 juin 2005, 10:25
par sausee2005
d'ac avec zeus avec between ça devrait marcher

Posté : 20 juin 2005, 10:26
par Pasti$
si on ne peut pas faire comme je pense faire peut on ffaire sous la forme

Code : Tout sélectionner

SELECT total_questionnaire FROM reponses WHERE date_actuelle='2005-20-06' , date_actuelle='2005-18-06' ;

Posté : 20 juin 2005, 10:28
par Pasti$
Ah ok j'avais pas vu j'écrivais mon message en meme temps

MERCI

Posté : 20 juin 2005, 10:28
par sausee2005
non je pense pas il te marque pas un message d'erreur parce que la tu utilises 2 champs identiques (redondance)

Posté : 20 juin 2005, 10:29
par sausee2005
et même si ça marcheraît il te prendrais en compte que ses dates là pas l'écart

Posté : 20 juin 2005, 10:30
par zeus
Le fait d'utiliser 2 champs identiques dans une requete SQL ne va pas déclencher une erreur mais va juste bloquer tous les résultats

la requete de Pasti$ cherche les questionnaires dont la date de réponse est le 21-06-2005 et le 28-06-2005. Comme c'est impossible qu'un formulaire soit répondu 2 jours, la requete ne retournera aucun résultat

Posté : 20 juin 2005, 10:54
par Pasti$
Voici ma requete qui ne retourne RIEN
<?php 
mysql_select_db("formulaire");
$semaine = mysql_query ("SELECT SUM(total_questionnaire) FROM reponses WHERE date_reponse BETWEEN 2005-06-13 AND 2005-06-21") ; 
$sem=mysql_result($semaine,0); // on choisit les dates limites et on fait la somme de total_questionnaire
echo $sem;          
?>

cette requete ne marche pas

Posté : 20 juin 2005, 10:56
par sausee2005
$semaine = mysql_query ("SELECT SUM(total_questionnaire) FROM reponses WHERE date_reponse BETWEEN 2005-06-13 AND 2005-06-21;") ;
essaie ça oublie du point virgule

Posté : 20 juin 2005, 10:59
par zeus
LE ; ne change rien. Il 'est utile que si tu enchaine les requetes.

Il me semble que le format des dates c'est aaaa/jj/mm

Mais on essayer un autre format
$semaine = mysql_query ("SELECT SUM(total_questionnaire) FROM reponses WHERE date_reponse BETWEEN #13/06/05# AND #21/06/05#") ;

Posté : 20 juin 2005, 11:02
par sausee2005
ah exact tu doit avoir raison j'avais même pas vu le manque des #

Posté : 20 juin 2005, 11:05
par zeus
les #, c'est juste pour indiquer qu'on quitte le format internationnal

Après, je pense qu'on doit pouvoir écrire 16/06/2005 mais je suis sûr que #16/06/05# fonctionne

Posté : 20 juin 2005, 11:08
par sausee2005
je savais pas moi on m'appris qu'il fallait toujours mettre le ; à la fin de la requête et les # avant et aprés une date et que le format devait toujours être mm/dd/aaaa