Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como fazer Doctrine_Expression (doutrina 1.2) tentar obter os últimos 7 dias


O motivo pelo qual não retorna nada é porque o Doctrine escapa da expressão - o SQL gerado é
WHERE (date > 'DATE_SUB(CURDATE(), INTERVAL 7 DAY)')

ao invés de
WHERE (l.action_time > DATE_SUB(CURDATE(), INTERVAL 7 DAY))

Você pode forçá-lo a funcionar assim:
$date = new Doctrine_Expression('DATE_SUB(CURDATE() , INTERVAL 7 DAY)');
$q->where('date > ' . $date);

No entanto, esta não é a opção mais segura, pois a entrada não escapa e não é uma boa prática ...