Doctrine orm 条令查询:如何查询日期范围?
基本上,我希望使用日期范围进行查询,如下所示:Doctrine orm 条令查询:如何查询日期范围?,doctrine-orm,doctrine-query,Doctrine Orm,Doctrine Query,基本上,我希望使用日期范围进行查询,如下所示: $qb = $this->createQueryBuilder("c"); if ($createDateStart) { $createDateStart = $createDateStart->format('d-M-Y'); $qb->where("c.createDate >= :createDateStart")->setParameter(
$qb = $this->createQueryBuilder("c");
if ($createDateStart) {
$createDateStart = $createDateStart->format('d-M-Y');
$qb->where("c.createDate >= :createDateStart")->setParameter(
"createDateStart", $createDateStart);
}
if ($createDateStart && $createDateEnd) {
$createDateEnd = $createDateEnd->format('d-M-Y');
$qb->andWhere("c.createDate <= :createDateEnd")->setParameter(
"createDateEnd", $createDateEnd);
} else
if ($createDateEnd) {
$createDateEnd = $createDateEnd->format('d-M-Y');
$qb->where("c.createDate <= :createDateEnd")->setParameter(
"createDateEnd", $createDateEnd);
}
但是,当我使用此日期范围进行测试时:$createDateStart=01-Jan-2014到$createDateEnd=31-Jan-2014。将显示去年(即2013年)的条目
我猜我也必须格式化$createDate(d-m-Y),但是如何从查询语句中进行格式化呢
谢谢你的帮助
$qb->where('e.fecha BETWEEN :monday AND :sunday')
->setParameter('monday', $monday->format('Y-m-d'))
->setParameter('sunday', $sunday->format('Y-m-d'));
问题解决了 在将datetime对象用作参数之前,不需要将其转换为字符串,您的实体属性是否定义为datetime类型?是。他们是。但上述问题的原因是什么?比较的语法正确吗?
$qb->where('e.fecha BETWEEN :monday AND :sunday')
->setParameter('monday', $monday->format('Y-m-d'))
->setParameter('sunday', $sunday->format('Y-m-d'));