sql >> Databasteknik >  >> RDS >> PostgreSQL

Ecto Query - Datum + Postgres Intervals + Query Interpolation

Jag behövde göra exakt detta för ett tag sedan och slutade med att du kan multiplicera intervaller med $1 .

postgres=# select interval '1 year' - interval '1 month' * 5;
 ?column?
----------
 7 mons
(1 row)

Så det här borde fungera:

query = from ch in Child, 
            join: loc in assoc(ch, :location),
            where: ch.birthday <= fragment("(now() AT TIME ZONE ?)::date - interval '1 month' * ?", loc.time_zone, 2)

Repo.all(query)



  1. Gör en ackumulerad summa i view oracle

  2. sqlalchemy postgresql Är Null index

  3. Mysql stoppa ord och matcha

  4. Hur väljer man efter MAX(datum)?