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 を使用する以外のヒントはありますか?