Reputation: 341
How to use the expression mysql NOW() in doctrine querybuilder?
Upvotes: 31
Views: 32434
Reputation: 2576
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.
Upvotes: 53
Reputation: 4053
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()')
);
Upvotes: 9