How to use the expression mysql NOW() in doctrine querybuilder?
In Doctrine2 you have to use one of the following instead of NOW()
.
This:
CURRENT_TIMESTAMP()
Or:
... createQuery(...'WHERE x.date = :now') ->setParameter('now', new \DateTime('now')) ...
If you want only time or only date use one of those: CURRENT_TIME()
and CURRENT_DATE()
Documentation can be found here.
Using query builder it would look like this:
$qb ->select('B') ->from('RandomBundle:Banana', 'B') ->where( $qb->expr()->gt('B.expiresAt', ':now') ) ->setParameter('now', '\'CURRENT_TIMESTAMP()\'');
Note: extra quotes on parameter set is required to get CURRENT_TIMESTAMP()
function working.
Or simply
$qb ->select('B') ->from('RandomBundle:Banana', 'B') ->where( $qb->expr()->gt('B.expiresAt', 'CURRENT_TIMESTAMP()') );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With