В принципе, я хочу, чтобы запросить, используя диапазон дат следующим образом:Doctrine Query: как запросить диапазон дат?
$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);
}
и вот сущность для «createDate»:
/**
* @Column(type="datetime")
*/
private $createDate;
Однако, когда я проверяю с помощью этого диапазона дат: $ createDateStart = 01-янв-2014 до $ createDateEnd = 31-янв-2014. Отображаются записи за последний год, т.е. 2013 год.
Я предполагаю, что мне также нужно форматировать $ createDate (d-M-Y), но как это сделать из инструкции запроса?
Буду признателен за вашу помощь.
Вам не нужно преобразовывать свой объект datetime в строку перед тем, как использовать его в качестве параметра, являются ли ваши свойства объекта определенными как тип даты? – calumbrodie
Да. Они есть. Но в чем причина этого вопроса? Правильно ли синтаксис сравнения? – EngineerCoders