0

いくつかの便利なMySQL関数を実装しているDoctrineExtensionsモジュールを見つけました。しかし、私の問題は一般的なものだと思います。別のmysql式をパラメーターとして関数にどのように渡しますか?

aとanの2つの列updated_atがあり、エンティティの有効期限が切れているかどうかを照会したい場合は、これを行うことができます。DATETIMElifespanINT

WHERE 0 > TIMESTAMPDIFF(SECONDS, NOW(), e.updated_at + INTERVAL e.lifespan SECOND)

QueryBuilderでは、次のようになります。

$qb->andWhere('0 > TIMESTAMPDIFF(SECONDS, CURRENT_TIMESTAMP(), e.updated_at + INTERVAL e.lifespan SECOND)');

+ INTERVAL e.lifespan SECONDしかし、パーサーは、プラス記号の代わりにかっこを閉じることを期待しているため、これを好みません。

4

1 に答える 1

1

DoctrineExtensionsモジュールのDateAddクラスを使用できることに気づきました。

TIMESTAMPDIFF(SECOND, CURRENT_TIMESTAMP(), DATEADD(e.updated_at, INTERVAL e.lifespan SECOND))

于 2012-05-22T15:23:13.263 に答える