[英]SQL Query with MAX()Date < DATE_SUB(NOW(), INTERVAL 6 month)
[英]Symfony2 sql query with DATE_SUB in hours
我想從最近12個小時的數據庫記錄中獲取信息。
我的控制者中有這個:
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery("SELECT e FROM MainCoreBundle:Event e WHERE e.date >= DATE_SUB(CURRENT_DATE() , 1, 'DAY')");
$statement = $query->getResult();
但是我想做12個小時,現在是1天。 當我像這樣更改它時:
DATE_SUB(CURRENT_DATE() , 12, 'HOUR')")
我收到一個錯誤消息,該方法DATE_SUB僅適用於DAYS和MOUNTHS。
如何獲得時間? 還有其他方法嗎?
您不需要注冊自定義DQL函數!
這可以通過標准的學說來完成,但是可以使用更好的方法。
$em = $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder();
$results = $qb->select('e')
->from('MainCoreBundle:Event', 'e')
->where('e.date >= :date')
->setParameter('date', new \DateTime('-12 hours'))
->getQuery()
->getOneOrNullResult();
從2.5
版本開始在Doctrine
是可能的。請注意,它現在在RC2中。 檢查Jira和github
您還可以使用自己喜歡的任何參數注冊自己的sql函數,並將其轉換為date_sub
。 檢查我的答案或symfony doc , doctrine doc怎么做
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.