2012-09-09 23 views
1

我正在运行以下查询,但似乎无法使datediff()过滤器正常工作。该查询正在执行成功,但即使我将datediff()更改为不同的值,我仍得到相同的结果。MySQL的datediff()函数总是返回相同的结果,不管它的值是多少

SELECT project_id 
    , google_rank 
    , COALESCE(
     (SELECT google_rank 
      FROM eig_ranking mi 
      WHERE mi.project_id = m.project_id 
      ORDER BY project_id limit 1 
       ) 
     , 0) - google_rank AS movement 
    , keyword 
    , domain 
    FROM eig_ranking m 
WHERE (DATEDIFF(rank_date, NOW()))/7 <= 12 
    AND google_rank != 0 
ORDER BY movement DESC 
+0

google_rank != 0过滤器可以正常工作,但不能使用datediff()过滤器 – petergt

+1

您可以运行,通过DATEDIFF(rank_date,NOW())/ 7从eig_ranking组中选择DATEDIFF(rank_date,NOW())/ 7, ?我的猜测是你在那里没有超过12周的时间。 – Ben

+0

我在哪里插入该代码\ – petergt

回答

0

感谢您的回复。我想到了。我不确定它是一个MYSQL错误还是文档错误,但将datediff()函数中的变量交换到DATEDIFF(NOW(),rank_date)使它对我的所有查询都正常工作,并且结果都是正确的

相关问题