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

Utilisation de PostgresSQL INTERVAL dans SQLAlchemy où la durée est stockée dynamiquement dans DB et n'est pas un paramètre

La solution est tombée du SQL lorsque je l'ai écrite manuellement :

from sqlalchemy import func
from sqlalchemy.dialects.postgresql import INTERVAL
from sqlalchemy.sql.functions import concat
...
company_uuid = 'some_uuid'
query = db.session.query(CompanyFlagEntity)\
    .join(CompanyFlagTypeEntity)\  # implicit join using fk
    .filter(CompanyFlagEntity.company_uuid == company_uuid)\
    .filter((func.now() - func.cast(concat(db_base_app.CompanyFlagTypeEntity.default_lookback_days, ' DAYS'), INTERVAL)) <= cls.flag_date)

Ceci référencé a aidé à découvrir comment créer dynamiquement l'intervalle en premier lieu.