Verwenden Sie ein SQLAlchemy Integer-Feld, um ein Timedelta-Objekt zum Filtern zu erstellen

Ich habe ein Objekt namens Item. Es hat 2 Felder: eine Datums- / Uhrzeitzeile mit dem Namen "created_on" und eine Ganzzahlzeile mit dem Namen "days".

Ich möchte nach allen Objekten suchen, die vor vielen Tagen "Tage" erstellt wurden.

Hier ist, wie ich dachte, dass es getan werden sollte:

now = utcnow()
session.query(Item).filter(Item.created_on + Interval(timedelta(days=Item.days)) <= now)

Aber ich kann kein solches Zeitdelta erstellen. Ich erhalte folgenden Fehler:

TypeError: unsupported type for timedelta minutes component: InstrumentedAttribute

Aktualisieren

Danke an van, ich sollte eine eingebaute Funktion verwenden. Ich benutze Mysql 5.1, also wäre estimestampadd. Meine neue Abfrage lautet:

now = utcnow()
session.query(Item).filter(func.timestampadd('DAY', Item.days, Item.created_on) <= now)

Der neue Fehler, den ich erhalte, ist jedoch:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''DAY', items.days, items.created_on) <= '2015-07-12 ' at line 3

Antworten auf die Frage(4)

Ihre Antwort auf die Frage