PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Verwenden von PostgresSQL INTERVAL in SQLAlchemy, wobei die Dauer dynamisch in der DB gespeichert wird und kein Parameter ist

Die Lösung fiel aus dem SQL heraus, als ich sie manuell schrieb:

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)

Dies referenziert, um herauszufinden, wie das Intervall überhaupt dynamisch erstellt werden kann.