Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation d'un champ SQLAlchemy Integer pour créer un objet timedelta pour le filtrage

Je ne pense pas que Interval vous y aidera, car il ne serait pas en mesure de contraindre les fonctions de date [heure] spécifiques à la base de données. Vous devriez donc probablement utiliser les fonctions date[time] spécifiques à la plate-forme pour résoudre ce problème.

Si vous utilisez postgresql , le code ci-dessous devrait fonctionner (en supposant que Items.days est un entier) :

q = (session.query(Item)
     .filter(func.age(now, Item.created_on) <=
             func.make_interval(0, 0, 0, Item.days)
             )
     )

Voir postgres' Fonctions et opérateurs de date/heure pour plus d'informations.