【发布时间】:2016-11-03 16:36:24
【问题描述】:
在我的数据库中,我有两张表 Booking 和 Week。 Booking 与 Week 具有一对多的关系。
进入一周我有一个“开始”和一个“结束”两个日期时间
我想选择所有在 45 天内开始的预订(编辑),但我不知道如何实现。
这是我写的:
$bookings = $doctrine->getRepository('MyBundle:Booking')
->createQueryBuilder('b')
->where('DATE_DIFF(CURRENT_DATE(), b.weeks) <= 45')
->getQuery()->getResult();
当然这不起作用,因为 b.weeks 是集合。而不是“周”,我需要获得第一周(也就是“开始”最低的一周)。
你能帮我做这件事吗?
PS:我无法执行 findAll 然后过滤,因为数据库中有超过 20.000 个预订......
【问题讨论】:
-
getFirstResult() 不适合您的情况?
-
不,因为现在这个查询会抛出异常,因为我可以在日期和集合之间进行 date_diff。