Doctrine - 查询日期范围
Doctrine - query with date range
我写了一个查询,可以在我的表单中调用 select 日期范围和 return 该范围内的所有数据库数据。
api 调用工作正常,但是当我设置日期参数时,它 return 是一个空结果。
$date = new \Datetime();
$result = $this->getMyRepository()
->createQueryBuilder('a')
->select('a')
->where('a.date >= :from')
->andWhere('a.date <= :to')
->setParameter('from', $date->format('Y-m-d H:i:s'))
->setParameter('to', $date->format('Y-m-d H:i:s'))
->orderBy('a.id')
->getQuery()
->getArrayResult();
return $result;
在我看来,您在 from
和 to
日期中使用了 format
,而您并不需要这样做。另外,我注意到 from
和 to
都使用了相同的 $date
。我相信你不是有意那样使用的。
替换这个,
->setParameter('from', $date->format('Y-m-d H:i:s'))
->setParameter('to', $date->format('Y-m-d H:i:s'))
有了这个,
$dateFrom = new \Datetime();
$dateFrom->setDate(2017, 1, 31);
$dateTo = new \Datetime();
$dateTo->setDate(2017, 12, 31);
->setParameter('from', $dateFrom )
->setParameter('to', $dateTo)
希望对您有所帮助。
干杯。
我写了一个查询,可以在我的表单中调用 select 日期范围和 return 该范围内的所有数据库数据。
api 调用工作正常,但是当我设置日期参数时,它 return 是一个空结果。
$date = new \Datetime();
$result = $this->getMyRepository()
->createQueryBuilder('a')
->select('a')
->where('a.date >= :from')
->andWhere('a.date <= :to')
->setParameter('from', $date->format('Y-m-d H:i:s'))
->setParameter('to', $date->format('Y-m-d H:i:s'))
->orderBy('a.id')
->getQuery()
->getArrayResult();
return $result;
在我看来,您在 from
和 to
日期中使用了 format
,而您并不需要这样做。另外,我注意到 from
和 to
都使用了相同的 $date
。我相信你不是有意那样使用的。
替换这个,
->setParameter('from', $date->format('Y-m-d H:i:s'))
->setParameter('to', $date->format('Y-m-d H:i:s'))
有了这个,
$dateFrom = new \Datetime();
$dateFrom->setDate(2017, 1, 31);
$dateTo = new \Datetime();
$dateTo->setDate(2017, 12, 31);
->setParameter('from', $dateFrom )
->setParameter('to', $dateTo)
希望对您有所帮助。
干杯。