问题
I try to make this query with doctrine 1.2:
$q->where('date > ?',
new Doctrine_Expression('DATE_SUB(CURDATE() , INTERVAL 7 DAY)'));
but it's not return me any results.
any idea ?
thanks
回答1:
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...
来源:https://stackoverflow.com/questions/7672125/how-to-make-doctrine-expression-doctrine-1-2-try-to-get-last-7-days