Giải pháp không có trong SQL khi tôi viết nó theo cách thủ công:
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)
Điều này được tham chiếu đã giúp tìm ra cách tạo khoảng thời gian động ngay từ đầu.