这很奇怪,也许是我的错。今天,我启动了测试,其中有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/

10-13 07:31