这很奇怪,也许是我的错。今天我启动了我的测试,其中有 2 个故障(昨天没有)。此测试使用一些预订的控制日期,我推测问题是今天是 31/12。我会给你看代码:
$em = $this->getEntityManager();
$query = $em->createQuery(
'SELECT b
FROM AppBundle:Booking b
WHERE b.bookingDate >= CURRENT_DATE()
AND b.bookingDate <= CURRENT_DATE()+1
ORDER ASC b.bookingDate'
)
return $booking = $query->getResult();
这是我发现检查预订日期是否为今天的唯一方法。有没有可能是因为今天是 31/12?你有什么解决办法吗? 对不起,英语不好,谢谢。
最佳答案
您可以通过 Php 计算日期:
$today = new DateTime('now');
$tomorrow = new DateTime('tomorrow');
$em = $this->getEntityManager();
$query = $em->createQuery(
'SELECT b
FROM AppBundle:Booking b
WHERE b.bookingDate >= :today
AND b.bookingDate < :tomorrow
ORDER BY b.bookingDate ASC'
);
return $query->setParameters(array(
'today' => $now->format('Y-m-d'),
'tomorrow' => $tomorrow->format('Y-m-d')
))->getResult();
您可以避免使用 var $booking
并直接返回结果。
您还错过了 ;
在 createQuery
的末尾并且 ORDER 是 ORDER BY。
还要注意命名空间,也许你必须使用 new\DateTime('now');
关于mysql - SQL Doctrine 除夕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41407916/