PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como converter tempo para data no fuso horário local durante a consulta


Finalmente consegui fazer funcionar! Não muito bonito (e espero que haja uma solução mais limpa), mas isso funcionou:
>> Payment.all(:conditions => 
              ["Date((payments.created_at at time zone 'UTC') 
                at time zone :timezone) >= :start_date and 
                Date((payments.created_at at time zone 'UTC') 
                at time zone :timezone) <= :end_date",
               :start_date => start_date, :end_date => end_date, 
               :timezone => 'Asia/Katmandu'])

Não gosto muito de ter que fazer isso:
Date((payments.created_at at time zone 'UTC') at time zone 'Asia/Katmandu')

Como é que o postgresql não permite que você faça isso?
Date(payments.created_at at 'Asia/Katmandu')