PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zapytanie Ecto - daty + interwały Postgres + interpolacja zapytań

Musiałem to zrobić jakiś czas temu i ostatecznie wykorzystałem fakt, że możesz pomnożyć interwały za pomocą $1 .

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

To powinno działać:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zepsuty postgres Homebrew

  2. Sortowanie wartości null po wszystkich innych, z wyjątkiem specjalnych

  3. Dlaczego warunki CROSS JOIN nie działają w klauzuli „ON”, tylko klauzula WHERE?

  4. postgresql - zaktualizuj tabelę drzewa z wierszami z tej samej tabeli, zmieniając id iparent_id

  5. Czy zamówienie według widoku gwarantuje kolejność wyboru?