Comment utiliser l'expression mysql NOW () dans doctrine querybuilder?
Dans Doctrine2, vous devez utiliser l'une des options suivantes au lieu de NOW()
.
Ce:
CURRENT_TIMESTAMP()
Ou:
...
createQuery(...'WHERE x.date = :now')
->setParameter('now', new \DateTime('now'))
...
Si vous ne voulez que l'heure ou la date, utilisez l'une de ces options: CURRENT_TIME()
et CURRENT_DATE()
En utilisant le générateur de requêtes, cela ressemblerait à ceci:
$qb
->select('B')
->from('RandomBundle:Banana', 'B')
->where(
$qb->expr()->gt('B.expiresAt', ':now')
)
->setParameter('now', '\'CURRENT_TIMESTAMP()\'');
Remarque: des guillemets supplémentaires sur le jeu de paramètres sont requis pour que la fonction CURRENT_TIMESTAMP()
fonctionne.
Ou simplement
$qb
->select('B')
->from('RandomBundle:Banana', 'B')
->where(
$qb->expr()->gt('B.expiresAt', 'CURRENT_TIMESTAMP()')
);