在DQL查询中添加DateTime + Integer

时间:2012-04-24 12:58:08

标签: datetime symfony doctrine

我想要检索尚未完成的事件。 我的问题是 startTime DateTime 持续时间整数

如何进行此添加?

此代码:

$events = $this->getRepository('Event')->createQueryBuilder('e')
               ->where('e.startTime+e.duration > CURRENT_TIMESTAMP()')
               ->getQuery();
               ->getResult();

扔我:

SQLSTATE[42883]: Undefined function: 7 ERROR: operator does not exist: timestamp without time zone + integer

1 个答案:

答案 0 :(得分:0)

您无法在日期中添加整数。 PHP / Doctrine如何解释整数?天,小时,分钟......?

MySQl提供了一些处理DATE和TIME的函数,其中一些函数以DQL语言提供,例如DATE_ADD,如果你的整数是天数,那就是你需要的!看Doctrine documentation

如果你的整数是一个秒数,它在DQL中没有实现,所以你需要创建一个“本机SQL查询”并使用MySQL函数,如ADDTIME

如果你想为DQL创建一个TIME_ADD函数,你可以阅读这篇解释how to create your own DQL functions的文章!