пытаюсь сделать примерно такой запрос:
SELECT id
FROM table
WHERE CURRENT_TIMESTAMP() > DATE_ADD(o.created_at, INTERVAL 1 DAY)
AND o.created_at > DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 60 DAY)
Напрямую использовать mysql функции не получается, функций дат в Expression тоже нет. Попытался сделать так:
$qb = $this->createQueryBuilder('o');
$q = $qb
->select([
'o.id'
])
->andWhere($qb->expr()->gt(
$qb->expr()->literal('CURRENT_TIMESTAMP()'),
$qb->expr()->literal('DATE_ADD(o.dateAdd, INTERVAL 1 DAY)')
))
->andWhere($qb->expr()->gt(
$qb->expr()->literal('o.dateAdd'),
$qb->expr()->literal('DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 60 DAY)')
));
Но литералы просто сравнивают длину строки, в которой лежит SQL.