Pole daty Doctrine - jak pisać zapytanie

Używam Symfony2 i Doctrine.

Mam pole daty, tutaj jest:

/**
  * @ORM\Column(type="date")
  */
 protected $date;

W moim formularzu używam pola tekstowego, aby uniknąć domyślnego datepicker Chrome, ale wstawiam obiekty DateTime do bazy danych:

if ($request->isMethod('POST')) {
        $form->bind($request);

        //Convert string date to DateTime object and send it to database as object
        $dateObj = \DateTime::createfromformat('d-m-Y', $expense->getDate());
        $expense->setDate($dateObj);
        // ...

a następnie chcę znaleźć wszystkie elementy o określonej dacie:

public function findExpensesForDate($user, $date)
{
    $q = $this
        ->createQueryBuilder('e')
        ->where('e.date = :date')
        ->andWhere('e.user = :user')
        ->setParameter('date', $date)
        ->setParameter('user', $user)
         ->getQuery();

    return $q->getResult();
}

i nazwij to tak:

$expenses_for_today = $this->repository->findExpensesForDate($this->user, $today);

który nic nie zwraca kiedy

$today = new /DateTime();

i zwraca wyniki, gdy

$today_obj = new /DateTime();
$today = $today_obj->format('Y-m-d'); 

Dlaczego więc, kiedy podaję datę jako obiekt, to nie działa? Czy nie jest powodem, aby używać daty, aby skorzystać z kwerendy z obiektami DateTime? Myślę, że tęsknię za czymś banalnym i ważnym, ale po prostu nie widzę co, albo nie rozumiem dobrze sytuacji. Moje zrozumienie jest następujące: pole ma typ daty, więc powinienem wstawić w nim obiekty DateTime i podczas kwerendy powinienem również obiekty DateTime. Czy możesz mi pomóc to naprawić?

P.S: Próbowałem zmienić pole na datetime:

 /**
  * @ORM\Column(type="datetime")
  */
 protected $date;

ale nie było zmiany.

Czy w ogóle dobrze i dobrze jest zapytać ciągiem? Czy otrzymam przewagę korzystania z obiektów w ten sposób?

questionAnswers(2)

yourAnswerToTheQuestion