2014-08-28 8 views
7

J'ai un problème et je n'arrive pas à trouver la solution. Avec une question précédemment posée (SELECT rows with time 30 minutes or less?) j'ai essayé de faire fonctionner ma fonction COUNT (*) mais je ne peux pas la faire fonctionner. Quelqu'un a une idée?DATEADD ne fonctionne pas dans ma requête

$adViewUnique = $dbh->query('SELECT COUNT(*) FROM g_ad_view WHERE ad_view_time >= DATEADD(mi, -30, GETDATE())')->fetchColumn(); 

Et ceci est l'erreur que je reviens:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1305 FUNCTION 18RVS15.DATEADD does not exist' in /var/www/vhosts/revulsionfm.com/RVS2.0/widgets/advertisement.php:38 Stack trace: #0 /var/www/vhosts/revulsionfm.com/RVS2.0/widgets/advertisement.php(38): PDO->query('SELECT COUNT(*)...') #1 {main} thrown in /var/www/vhosts/revulsionfm.com/RVS2.0/widgets/advertisement.php on line 38 
+0

Quelle base de données utilisez-vous? Si ce n'est pas SQL Server ou Sybase, alors vous utilisez la mauvaise syntaxe. –

+0

MySQL, je le pensais déjà mais puisque w3 disait la même chose je pensais que c'était moi. Avez-vous une solution? –

Répondre

14

La syntaxe MySQL est:

WHERE ad_view_time >= now() - interval 30 minute 
8

DateAdd est missspelled: Il doit être DATE_ADD (avec underscore). Voir le documentation

Questions connexes