我想要检索尚未完成的事件。 我的问题是 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
答案 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的文章!