2014-09-12 36 views
9

我無法在symfony2資源庫中使用DATEDIFF和CURRENT_TIME。當我使用年份功能時,同樣的問題在那裏。爲什麼發生這種情況?DATEDIFF無法在Symfony2中工作

return $this->getEntityManager() 
          ->createQuery("SELECT u FROM AcmeAdminBundle:AppUsers u WHERE DATEDIFF(CURRENT_TIME(), u.dob) BETWEEN :fromage AND :toage and u.country = :countries ORDER BY u.id DESC") 
          ->setParameter('fromage', $fromage) 
          ->setParameter('toage', $toage) 
          ->setParameter('countries', $countrystr); 

此查詢工作正常,如果我不使用鏈接(DQL Functions)的DATEDIFF定義上述功能的

+0

如果你將結果保存到一個變量,什麼'的var_dump()'會說什麼? – Yang 2014-09-12 10:36:16

+0

似乎它不是Symfony(或Doctrine)問題。可能是MySql中的問題。檢查你的MySql版本。 DATEDIFF()函數在v4.1.1上啓動 – 2014-09-12 11:06:23

+0

您究竟無法使用它?有拋出異常嗎?或者返回的結果與你所期望的有什麼不同?請具體說明,否則問題很難回答。 – kix 2014-09-12 11:19:45

回答

22

基地,並在學說有效正是你需要改變它從DATEDIFF(expr1, expr2)DATE_DIFF(expr1, expr2)
此外,如果你的領域是一個時間字段,最好用的CURRENT_DATE()代替NOW()CURRENT_TIME()

+0

+1感謝糾正我的錯誤,我確定它默認不支持:-) – 2014-09-12 17:26:59

+0

不客氣,謝謝:-) – Javad 2014-09-12 17:40:05