Select des champs ayant une date qui appartient a un intervalle [Résolu]

Signaler
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005
-
sephiroth1020
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005
-
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

Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
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.
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005

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 ");
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
20
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.
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005

Désolé mais ça ne marche pas!!!

AND est utiliser car les deux conditions doivent exister
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
20
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.
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005

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
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
20
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.
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005

Merci pour tes reponse.

Je cherche une reponse pour mon probleme de Comparaison et de conversion des variables Date ...
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
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.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
20
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.
Messages postés
56
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2005

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 ?