sql >> Database >  >> RDS >> PostgreSQL

PostgresSQL INTERVAL gebruiken in SQLAlchemy waarbij de duur dynamisch wordt opgeslagen in DB en geen parameter is

De oplossing viel uit de SQL toen ik het handmatig schreef:

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)

Dit waarnaar wordt verwezen, heeft geholpen om erachter te komen hoe het interval in de eerste plaats dynamisch kan worden gemaakt.




  1. Lopende bedragen voor meerdere categorieën in MySQL

  2. Verzamelingen aaneenschakelen in PLSQL

  3. haal datum uit tijdstempel in postgreSQL

  4. Toevoegen aan een databaseveld in plaats van het te overschrijven (MySQL UPDATE-functie)