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

时间:2013-06-02 00:14:28

标签: symfony doctrine-orm dql

如何使用Dql获取2个日期之间的区别?

我尝试过以下代码,但这不起作用。

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:12)

来自此来源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');