ИНТЕРВАЛ 1 МЕСЯЦ не работает с доктриной symfony2?

Я застрял здесь, и я провожу последние 2 дня, чтобы решить эту проблему, но не смог. Я пишу запрос в моем хранилище, чтобы получить записи за текущий месяц. вот мой запрос: -

<code>$this->getEntityManager()
 ->createQuery('SELECT count(a) FROM CollegeStudentBundle:StudentAttendance a where a.student_id='.$id.'
 and a.date > DATE_SUB(CURRENT_TIMESTAMP(),INTERVAL 1 MONTH)')
</code>

Когда я пытаюсь запустить это, это выдает мне ошибку

<code>[Syntax Error] line 0, col 133: Error: Expected Doctrine\ORM\Query\Lexer::T_COMMA, got '1'
</code>

Даже я пыталсяэта вещь но это не помогло мне.

Ответы на вопрос(2)

Решение Вопроса

Вы должны использовать привязку параметров:

$query = $em->createQuery('SELECT count(a) FROM CollegeStudentBundle:StudentAttendance a where a.student_id = :id and a.date > :date');
$query->setParameter('id', $id);
$query->setParameter('date', new \DateTime('-1 month'));
 08 апр. 2012 г., 08:31
Вы имеете в виду СЕЙЧАС или СЕГОДНЯ?
 ScoRpion08 апр. 2012 г., 10:11
: - Можете ли вы сказать мне оба .. СЕЙЧАС () и СЕГОДНЯ
 ScoRpion07 апр. 2012 г., 17:49
и можете ли вы сказать, как я могу использовать сейчас здесь
 07 апр. 2012 г., 11:18
$query->setParameter('date', new \DateTime('-1 year'));
 ScoRpion06 апр. 2012 г., 14:23
Большое спасибо jkucharovic. Это было так полезно. Можете ли вы сказать мне, как я могу сделать то же самое с ИНТЕРВАЛОМ 1 ГОД?

Вы должны помнить, что DQL - это не SQL. Ошибка исходит от лексера Doctrine, а не от MySQL. DQL не поддерживает INTERVAL (см.список поддерживаемых функций).

Читать дальше надобавив свои собственные функцииспециально добавив DATE_ADD с поддержкой INTERVAL здесь:http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/cookbook/dql-user-defined-functions.html#date-add

 19 окт. 2012 г., 09:54
Это должен быть принятый ответ.

Ваш ответ на вопрос