I try to make this query with doctrine 1.2:
$q->where(\'date > ?\',
new Doctrine_Expression(\'DATE_SUB(CURDATE() , INTERVAL 7 DAY)\'));
The reason why it doesn't return anything is because Doctrine escapes the expression - the generated SQL is
WHERE (date > 'DATE_SUB(CURDATE(), INTERVAL 7 DAY)')
rather than
WHERE (l.action_time > DATE_SUB(CURDATE(), INTERVAL 7 DAY))
You could force it to work like this:
$date = new Doctrine_Expression('DATE_SUB(CURDATE() , INTERVAL 7 DAY)');
$q->where('date > ' . $date);
This isn't the safest option however, as the input doesn't get escaped and isn't good practice...