PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come convertire l'ora in data nel fuso orario locale durante la query

Finalmente ho funzionato! Non molto carino (e spero che ci sia una soluzione più pulita) ma ha funzionato:

>> 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'])

Tuttavia, non mi piace molto dover fare questo:

Date((payments.created_at at time zone 'UTC') at time zone 'Asia/Katmandu')

Come mai postgresql non ti lascia fare solo questo?

Date(payments.created_at at 'Asia/Katmandu')