[DATEDIFF()] Problème fonction...
Bonjour,
J'essaie de comparer 2 dates mais une erreur de requete survient toujours au même endroit et je ne sais pas pourquoi :
"Erreur dans l'exécution de la requête 'DELETE FROM commande_produit WHERE DATEDIFF(hh,'2005-11-27 07:00:00','2005-11-27 12:14:45') > 1'.
Message de MySQL : Erreur de syntaxe près de ''2005-11-27 12:14:45') > 1' à la ligne 1"
Mon code est le suivant :
/*
$date = date("Y-m-d H:i:s");
$res = ExecRequete("SELECT * FROM commande_produit WHERE client_comprod = '$num_client'", $connexion);
if($res)
{
while($client = ObjetSuivant($res))
{
$date_client = $client->date_comprod;
$resultat11 = ExecRequete("DELETE FROM commande_produit WHERE DATEDIFF(hh,'$date_client','$date') > 1", $connexion);
}
}
*/
Est-ce que quelqu'un aurait une solution ?
Merci d'avance.
Re: [DATEDIFF()] Problème fonction...
Eh oh, faudrait peut-être lire la doc MySQL avant de poster:
Citation:
Envoyé par http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
DATEDIFF(expr,expr2)
DATEDIFF() returns the number of days between the start date expr and the end date expr2. expr and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation.
... c'est un nombre de JOURS que ça te renvoie.
Ce qu'il te faut, c'est un TIMESTAMPDIFF, qui malheureusement n'est disponible qu'à partir de la 5.0
Sinon, tu peux te débrouiller en faisant un :
Code:
WHERE ADDTIME(NOW(), "1:00:00") < $date_client
Ou quelque chose dans le genre...
A noter que j'ai changé l'instruction PHP $date = date("Y-m-d H:i:s"); par la fonction MySQL NOW().
Re: [DATEDIFF()] Problème fonction...
Par ailleurs, tu peux tout faire en une seule requête (pas de SELECT, pas de boucle, juste l'essentiel...)
Code:
1 2 3
| DELETE FROM commande_produit
WHERE client_comprod=$num_client
AND ADDTIME(NOW(), "1:00:00") < date_comprod |
Par contre explique nous ce que tu veux faire parce que c'est vrai que ça semble bizarre comme requête (supprimer les commandes passées dans une heure... :? )