doctrine querybuilderで式mysql NOW()を使用するには?
Doctrine2ではNOW()
の代わりに以下のいずれかを使用する必要があります。
この:
_CURRENT_TIMESTAMP()
_
または:
_...
createQuery(...'WHERE x.date = :now')
->setParameter('now', new \DateTime('now'))
...
_
時間のみまたは日付のみが必要な場合は、次のいずれかを使用します:CURRENT_TIME()
およびCURRENT_DATE()
クエリビルダーを使用すると、次のようになります。
_$qb
->select('B')
->from('RandomBundle:Banana', 'B')
->where(
$qb->expr()->gt('B.expiresAt', ':now')
)
->setParameter('now', '\'CURRENT_TIMESTAMP()\'');
_
注:パラメータセットの余分な引用符は必須であり、CURRENT_TIMESTAMP()
関数が機能します。
または単に
_$qb
->select('B')
->from('RandomBundle:Banana', 'B')
->where(
$qb->expr()->gt('B.expiresAt', 'CURRENT_TIMESTAMP()')
);
_