2013-06-02 121 views
4

我怎樣才能用DQL 2個日期之間的差異?如何獲得兩個日期之間的差異與DQL

我曾嘗試下面的代碼,但沒有奏效。

$query =$this->_em->createQuery('select a,DATEDIFF(d,\'now\',a.date) from ABundle:Abonment a where d==1'); 

我該如何解決這個問題?

回答

11

從這個來源http://docs.doctrine-project.org/en/2.1/reference/dql-doctrine-query-language.html#dql-functions

DATE_DIFF(date1, date2) - 計算在DATE1-DATE2之間的天數的差異,以及在查詢你的函數取3個參數。

在Doctrine2你必須使用下列功能適合你,而不是更好的NOW()函數:

CURRENT_DATE() - Return the current date 
CURRENT_TIME() - Returns the current time 
CURRENT_TIMESTAMP() - Returns a timestamp of the current date and time. 

在結束你的查詢應該通過這樣的:

$query =$this->_em->createQuery('select a, DATE_DIFF(CURRENT_DATE(), a.date) as days from ABundle:Abonment a where days = 1');