我想选择 1 个月或更新的记录。
查询是:SELECT * FROM foobar WHERE created_at > DATE_SUB(curdate(), INTERVAL 1 MONTH)
在 Symfony 中使用 Propel,我这样做:
$c = 新标准
$c->add(FoobarPeer::CREATED_AT, "DATE_SUB(curdate(), INTERVAL 1 MONTH)", Criteria::GREATER_THAN);
Propel 生成的是: SELECT * FROM foobar WHERE created_at > 'DATE_SUB(curdate(), INTERVAL 1 MONTH)' - 换句话说,它将 MySQL 函数放在单引号中,这使它成为一个(无意义的)字符串,我没有记录。
我现在所做的是:
$c->add(FoobarPeer::CREATED_AT, "created_at > DATE_SUB(curdate(), INTERVAL 1 MONTH)", Criteria::CUSTOM);
但除非必须,否则我不想使用自定义解决方法。除了使用 Criteria::CUSTOM 之外的任何提示?