2014-08-28 16 views
7

Ho un problema e non riesco a capire la soluzione. Con una domanda in precedenza (SELECT rows with time 30 minutes or less?) ho provato a far funzionare la mia funzione COUNT (*) ma non riesco a farlo funzionare. Qualcuno un'idea?DATEADD non funziona nella mia query

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

E questo è l'errore che ottengo indietro:

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

Che database stai usando? Se non si utilizza SQL Server o Sybase, si utilizza la sintassi errata. –

+0

MySQL, l'ho già pensato ma da quando w3 diceva la stessa cosa pensavo fossi io. hai una soluzione? –

risposta

14

La sintassi MySQL è:

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

DateAdd è missspelled: Deve essere DATE_ADD (con sottolineatura). Vedi il documentation

Problemi correlati