我有一個包含計劃和過去付款的表,我需要查找是否在同一個用戶/合同的同一周內有兩筆費用。服務器端SQLAlchemy日期時間操作
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()
任何想法?
我已經寫了一個新的表達方式,但無論如何感謝。 –