6

如何使用 Dql 获得 2 个日期之间的差异?

我尝试了以下代码,但没有奏效。

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

我该如何解决这个问题?

4

1 回答 1

14

从这个来源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');
于 2013-06-02T10:48:32.120 回答