2014-05-15 3 views
0

Il existe une table avec une colonne pour stocker l'heure (format: 2014-5-5 21:21 pm). J'utilise PDO pour obtenir des données à partir de cette table dans les 60 jours qui correspondent à la valeur de la date et de l'heure colunm. Ma requête ne répond pas. Quelqu'un peut-il me dire ce qui ne va pas?PDO DATE_SUB() pour filtrer les données

foreach ($myCon->query("SELECT * FROM students_tbl LEFT OUTER JOIN fees_tbl ON students_tbl.username = fees_tbl.studentname WHERE exec_datetime BETWEEN DATE_SUB(DATE_FORMAT(students_tbl.datetime, '%Y-%m-%d %l:%i%p'),INTERVAL '60' DAY)") as $results){ 
echo $results['grade']; 
} 
+0

1. Si vous aviez 'error_reporting' sous tension, vous verriez une erreur d'essayer d'utiliser un booléen value dans un foreach parce que 2. Vous devriez vérifier la valeur de retour de 'query()' car il retournera 'false' quand la requête ne peut pas s'exécuter parce que 3. Vous n'utilisez pas la syntaxe correcte pour' BETWEEN'. Voir @ la réponse de James ci-dessous. – Sammitch

Répondre

1

correcte entre la syntaxe:

somedate BETWEEN date1 and date2 

ce que vous avez:

somedate BETWEEN date1 
+0

Assurez-vous également de mettre d'abord la date minimale, puis la date maximale. –

Questions connexes