Comment peut-on comparer une date avec la date actuelle à l'aide de Doctrine 2?
J'ai une base de données où une "date d'expiration" est stocké. Maintenant, je veux la date actuelle avec la stockées date d'expiration de la comparaison. Si la date actuelle est avant la date d'expiration, les données doivent être affichées comme d'habitude, mais si les données sont expirés, je veux qu'il soit exclu.
J'ai essayé:
$query = $em->createQuery('SELECT d FROM test d WHERE d.expDate > :date')
->setParameters('date', 'now()');
Aider ce serait cool, ou quelques conseils si quelqu'un comprend mon problème.
OriginalL'auteur Adi | 2012-05-14
Vous devez vous connecter pour publier un commentaire.
Il est une autre façon:
createQuery
, notez que le format de la chose étant donné quetest
ci-dessus est plein des espaces de nom de votre entité. Par exempleSELECT m FROM MyProject\Entities\MyEntity m WHERE m....
. (ref)Cela finit par être un peu plus lent que
CURRENT_DATE()
, comme dans @Crozin de réponse.OriginalL'auteur fain182
Droit maintenant, vous êtes en comparant
expDate
colonne à la texte "now()", de ne pas le résultat de la fonctionnow()
.Mon erreur. Le nom de la fonction est
CURRENT_DATE()
, pasNOW()
.$em->createQuery('SELECT d FROM test d WHERE d.expDate > NOW()');
OriginalL'auteur Crozin
Vous pouvez utiliser le
date
fonction pour créer une chaîne de caractères à comparer:OriginalL'auteur Uzair Bin Nisar
En fait, votre chemin ne fonctionne pas mais vous avez une petite erreur dans votre code.
Vous utilisez:
Maintenant, vous pouvez modifier de deux façons, de sorte que cela fonctionne:
1. Laissez le "s" à "setParameters"-> set de Paramètre
Ou
Utilisation de tableau lors de l'utilisation de "paramètres", dans votre cas:
OriginalL'auteur Vojtech Adam