Как использовать выражение mysql NOW() в doctring querybuilder?
Выражение mysql NOW() в Doctrine QueryBuilder
Ответ 1
В Doctrine2 вы должны использовать одно из следующих значений вместо NOW()
.
Это:
CURRENT_TIMESTAMP()
Или же:
...
createQuery(...'WHERE x.date = :now')
->setParameter('now', new \DateTime('now'))
...
Если вы хотите использовать только время или только дату, используйте один из них: CURRENT_TIME()
и CURRENT_DATE()
Ответ 2
Используя построитель запросов, он будет выглядеть так:
$qb
->select('B')
->from('RandomBundle:Banana', 'B')
->where(
$qb->expr()->gt('B.expiresAt', ':now')
)
->setParameter('now', '\'CURRENT_TIMESTAMP()\'');
Примечание: дополнительные кавычки в наборе параметров требуется, чтобы получить функцию CURRENT_TIMESTAMP()
.
Или просто
$qb
->select('B')
->from('RandomBundle:Banana', 'B')
->where(
$qb->expr()->gt('B.expiresAt', 'CURRENT_TIMESTAMP()')
);