SQLAlchemy datetime операции на стороне сервера

У меня есть таблица с запланированными и прошлыми платежами, и мне нужно выяснить, есть ли какие-либо два платежа за одну и ту же неделю для одного и того же пользователя / контракта.

select count(*) from charge as c1, charge as c2 
where c1.id_contract = c2.id_contract 
  and c1.status = 'SUCCESS' 
  and c2.status in ('SUCCESS', 'PENDING', 'WAITING') 
  and c1.id > c2.id and c2.due_time > (c1.due_time - interval 7 day);

Мне трудно воспроизвести этот запрос в sqlalchemy, в основном из-за того, что я не могу найти, как перевести интервал MySQL. к SQLAlchemy в агностической форме базы данных.

До сих пор я придумал это, которое переводит все, кроме интервала:

db.session.query(Charge, OldCharge).filter(Charge.id_contract == OldCharge.id_contract, Charge.status=='WAITING', OldCharge.status.in_(('SUCCESS', 'PENDING')), Charge.id > OldCharge.id).count()

Есть идеи?

Ответы на вопрос(2)

Ваш ответ на вопрос