Вы можете расширить и зарегистрировать функцию DATE() в доктрине 2, чтобы поиграть с DQL. проверьте это решение.
Теперь, если вы не хотите расширять доктрину2, вот мои решения:
Поиск по дате:
Вы можете получить интервал между датой и временем начала дня и датой и временем его окончания, я уже отвечаю здесь.
Это самое чистое решение для даты (я думаю)!
Теперь еще одно простое решение - сравнить поле даты и времени как строку с оператором LIKE, так что вы также можете сделать это:
$query = $repository->createQueryBuilder('u')->where('u.createdAt LIKE :date')
->setParameter('date', '2013-05-06%')
->getQuery();
$users = $query->getResult();
Поиск по часам:
Я не знаю другого решения с DQL, кроме сравнения как строки (если вы не расширите доктрину с помощью DATE), вот код:
$query = $um->getRepository()->createQueryBuilder('u')->where('u.createdAt LIKE :date')
->setParameter('date', '____-__-__ 10:45:__')
->getQuery();
Напоминаем, что "_" (подчеркивание) означает 1 символ (и любой символ!).
Выбери свое решение ;)
person
Sybio
schedule
17.06.2013