你应该设置DateTime对象,而不是将其格式化为字符串。
尝试使用:
public function getReport($initialDate, $finalDate)
{
$qb = $this->createQueryBuilder('s')
->where('s.date BETWEEN :initialDate AND :finalDate')
->setParameter('initialDate', $initialDate)
->setParameter('finalDate', $finalDate);
return $qb->getQuery()->getResult();
}
public function getReport($initialDate, $finalDate)
{
$qb = $this->createQueryBuilder('s');
->where('s.date BETWEEN :initialDate AND :finalDate')
->setParameter('initialDate', $initialDate)
->setParameter('finalDate', $finalDate);
return $qb->getQuery()->getResult();
}
你可以使用以下方式将EXPR组件与BETWEEN语句结合使用:
您可以使用以下方式将EXPR组件与BETWEEN语句结合使用:
public function getReport($initialDate, $finalDate)
{
$qb = $this->createQueryBuilder('s');
$qb->where($qb->expr()->between('s.date',':initialDate',':finalDate'))
->setParameter('initialDate', $initialDate)
->setParameter('finalDate', $finalDate);
return $qb->getQuery()->getResult();
}
希望这有所帮助。
echo $qb->getQuery()->getSQL()
并在服务器上手动测试您的查询。在这种情况下,我们无法帮助您,因为我们不知道生产/开发数据库中的数据是否相同,以及服务器配置是否相同。 - Raphaël Malié