Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment faire en sorte que Doctrine_Expression (doctrine 1.2) essaie d'obtenir les 7 derniers jours

La raison pour laquelle il ne renvoie rien est que Doctrine échappe à l'expression - le SQL généré est

WHERE (date > 'DATE_SUB(CURDATE(), INTERVAL 7 DAY)')

plutôt que

WHERE (l.action_time > DATE_SUB(CURDATE(), INTERVAL 7 DAY))

Vous pouvez le forcer à fonctionner comme ceci :

$date = new Doctrine_Expression('DATE_SUB(CURDATE() , INTERVAL 7 DAY)');
$q->where('date > ' . $date);

Ce n'est pas l'option la plus sûre cependant, car l'entrée n'est pas échappée et n'est pas une bonne pratique...