2014-09-12 47 views
9

Silenf2 depolarında DATEDIFF ve CURRENT_TIME kullanamıyorum. Yıl fonksiyonunu kullanırken aynı sorun var .. neden bu oluyor?DATEDIFF çalışmıyor 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); 

Ben bağlantı (DQL Functions) DATEDIFF tanımlanır yukarıdaki işlevleri

+0

kullanımı Ve daha iyidir bir datetime alan ne 'var_dump() ise
Dahası,' derdi? – Yang

+0

Symfony (veya Doctrine) problemi değil gibi görünüyor. Sorun olabilir MySql'de. MySQL sürümünüzü kontrol edin. DATEDIFF() işlevi v4.1.1 üzerinde başlatıldı –

+0

Tam olarak nasıl kullanamıyorsunuz? Atılmış bir istisna var mı? Yoksa iade edilen sonuç bir şekilde beklediğinizden farklı mıdır? Lütfen bunu belirtin, aksi halde soru cevap vermek zordur. – kix

cevap

22

Bankası kullanımı ve sadece DATEDIFF(expr1, expr2) den DATE_DIFF(expr1, expr2) olarak değiştirmek gerekir Doktrin geçerlidir olmasaydı düzgün çalışmıyor bu sorgu. saha Eğer bir değişkene sonucu kaydetmek eğer CURRENT_DATE() yerine NOW() veya CURRENT_TIME()

+0

+1 Düzeltme yaptığınız için, bunun varsayılan olarak desteklenmediğinden emin oldum :-) –

+0

Bir şey değil, teşekkürler :-) – Javad