我无法在symfony2存储库中使用DATEDIFF和CURRENT_TIME。当我使用年份函数时,同样的问题就在那里。为什么会发生这种情况?
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);
如果我没有使用上述功能,此查询正常工作
答案 0 :(得分:26)
根据链接(DQL Functions)定义了DATEDIFF
并且在Doctrine中有效,只需将其从DATEDIFF(expr1, expr2)
更改为DATE_DIFF(expr1, expr2)
。
此外,如果您的字段是日期时间字段,最好使用CURRENT_DATE()
代替NOW()
或CURRENT_TIME()