Select des champs ayant une date qui appartient a un intervalle

Résolu
sephiroth1020
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005
- 30 sept. 2005 à 12:11
sephiroth1020
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005
- 30 sept. 2005 à 14:35
Je souhaite faire un SELECT entre deux dates : genre



SELECT * FROM transaction date>=$date_min AND date<=$date_max



Cette expression ne marche pas !!!



Qui peux me donner une autre solution ???

11 réponses

ImmortalPC
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
30 sept. 2005 à 14:34
Salut,

Truc con mais ça marche :

SELECT `date` FROM `test` WHERE `date` >= "2005-09-30 14:23:03" AND `date` <= "2005-09-30 14:23:06"

et ça me renvoie 4 champs.

Et en prime le code php que g utilisé

<?php

$connect = mysql_connect('localhost', 'root', '');

mysql_select_db('localhost', $connect);

for($i=0;$i<10;$i++){

mysql_query('INSERT INTO `test` VALUES("'.date('Y-m-d H:i:0'.$i).'");')or die(mysql_error());

}

// Fromat de la date : date('Y-m-d H:i:s')

mysql_close($connect);

?>

@+


Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.
3
sephiroth1020
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005

30 sept. 2005 à 14:35
Merci pour tt le monde je viens de trouver la solution :



$date_min="20050901000000";

$date_max="20051031235959";

$reponse = mysql_query("SELECT * FROM transaction WHERE ncclient='$nc2' And date BETWEEN $date_min AND $date_max ");
3
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
30 sept. 2005 à 12:43
Hello,



c'est pas du sql ça...lol. Il manque quelques clauses...



SELECT machin FROM transaction WHERE date BETWEEN $date_min AND $date_max



http://dev.mysql.com/doc/mysql/en/comparison-operators.html



Ou tu gardes ton truc, mais tu ajoutes la clause WHERE, parce que là,
ta requête ne veut strictement rien dire. De toutes façons, les
requêtes, 'est facile : c'est presque du littéral. Si tu traduis la
tienne, tu dis :

sélectionnes machin dans transaction date est supérieure ou égale à date_min et date est inférieure ou égale à date_max.

Ca ne veut rien dire en français. Alors qu'en rajoutant "où"...:

sélectionnes machin dans transaction où date est supérieure ou égale à date_min et date est inférieure ou égale à date_max.
0
sephiroth1020
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005

30 sept. 2005 à 12:49
Désolé mais ça ne marche pas!!!

AND est utiliser car les deux conditions doivent exister
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
30 sept. 2005 à 12:52
Je n'ai pas enlevé AND...je t'ai dit que tu avais oublié WHERE.

Et si ça ne marche pas, c'est qu'il y a un problème avec ta table/tes
variables, car cette requête fonctionne très bien chez moi.
0
sephiroth1020
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005

30 sept. 2005 à 12:55
Moi en posant cette question mon but n'était pas d'avoir des reponses
sur la syntaxe mais comment pouvoir comparer une DATE de la base de
données avec une variable
0
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
30 sept. 2005 à 13:01
Je viens de te le dire !

Ta requête est syntaxiquement fausse, donc forcément, elle ne marche pas!

Et je t'ai donné 2 syntaxes! Faire une comparaison entre deux dates en sql, c'est bien un problème de syntaxe, pas de maths...



Après, si tes variables, elles, ne correspondent pas à ton modèle de
données...je n'y peux rien. Si tu tentes de comparer un type datetime
sql et un type date php...forcément, ça foire. On ne peut comparer que
ce qui est comparable.

Moi s je te demande : est-ce que 2 est inférieur au 30 septembre 2005,
tu vas me répondre quoi ? Tu vas me faure la gueule. Mysql et php aussi.
0
sephiroth1020
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005

30 sept. 2005 à 13:05
Merci pour tes reponse.

Je cherche une reponse pour mon probleme de Comparaison et de conversion des variables Date ...
0
ImmortalPC
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
30 sept. 2005 à 13:08
Salut,

1) Sous quel forme est ta date $date ?

2) Sous quel forme est ta date qui est dans MySQl ?

@+

Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.
0
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
30 sept. 2005 à 13:12
Sephiroth => il y a eu une charte ici, à un moment...elle disait
entre autre qu'il fallait énoncer clairement les problèmes, avec toutes
les informations nécessaires.

Si tu cherches à comparer un champ date mysql, et une variable $date...tu dois dire précisément de quel type sont :

- ton champ sql

- ta variable.

Comme te le demande Immortal.

Ca me semble une évidence que sans ça, personne ne peut te donner de réponse claire.

Enonce donc clairement et exhaustivement.
0
sephiroth1020
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005

30 sept. 2005 à 13:17
Le type de la date dans Mysql : DATETIME

Le type de la variable $date_min : Texte sous le meme format que date time :aaaa-mm-jj hh:mm:ss

Vous avez une solutions pour moi ?
0