Powodem, dla którego nic nie zwraca, jest to, że Doctrine unika wyrażenia - wygenerowany kod SQL jest
WHERE (date > 'DATE_SUB(CURDATE(), INTERVAL 7 DAY)')
zamiast
WHERE (l.action_time > DATE_SUB(CURDATE(), INTERVAL 7 DAY))
Możesz zmusić go do działania w ten sposób:
$date = new Doctrine_Expression('DATE_SUB(CURDATE() , INTERVAL 7 DAY)');
$q->where('date > ' . $date);
Nie jest to jednak najbezpieczniejsza opcja, ponieważ dane wejściowe nie są pomijane i nie jest dobrą praktyką...