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'));