这很奇怪,也许是我的错。今天,我启动了测试,其中有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原理除夕,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41407916/