Requête SQL avec DateDiff

parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
j'aimerais exécuter une requête SQL qui me renvoie uniquement les lignes d'une table dont un attribut Time (de type DateTime) est éloigné d'au plus 2 minutes avec la date à laquelle est exécutée la requête.

Alors je me suis penché sur le DateDiff, mais entre les formats, les " et les ', je me suis bien paumé !
Alors voilà mon code :

$dateNow = new DateTime(date("Y-m-d H:i:s"));
$newDate = $dateNow->sub(new DateInterval('P2M'));



 $sql = 'SELECT DATEDIFF(mi, '.$dateNow->format("Y-m-d H:i:s").', '.$newDate->format("Y-m-d H:i:s").') As Time FROM connect';
 
 $reqConnect = $bdd->prepare($sql);
 $reqConnect->execute(array());
 $donneesConnect = $reqConnect->fetch();
 
 echo $donneesConnect['Time'];


Et ça ne renvoie rien alors que j'ai bien vérifié dans ma bdd que des résultats devaient être retournés...

Voyez-vous une erreur dans mon code ?
Merci d'avance !

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Une requête de ce genre devrait faire l'affaire :
SELECT *
FROM tatable
WHERE TIMESTAMPDIFF(MINUTE,NomduchampContenantLaDate,NOW()) <  20 


Comme tu peux le constater .... tout est fait dans la requête.
Il n'y a aucun calcul de date en php ....

Je t'invite à la tester en DIRECT dans ta BDD avant d'essayer de l'utiliser via du PHP.


0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Penses à modifier le nom des variables bien entendu...
  • NomduchampContenantLaDate
  • tatable
0