Cuối cùng thì nó cũng hoạt động được! Không đẹp lắm (và tôi hy vọng có một giải pháp sạch hơn) nhưng điều này đã hiệu quả:
>> 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'])
Tuy nhiên, không thực sự thích phải làm điều này:
Date((payments.created_at at time zone 'UTC') at time zone 'Asia/Katmandu')
Tại sao postgresql không cho phép bạn làm điều này?
Date(payments.created_at at 'Asia/Katmandu')