PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So konvertieren Sie die aktuelle Zeit in die lokale Zeitzone während der Abfrage

Endlich funktioniert es! Nicht sehr hübsch (und ich hoffe, es gibt eine sauberere Lösung), aber das hier hat funktioniert:

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

Ich mag es aber nicht wirklich, das tun zu müssen:

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

Wie kommt es, dass postgresql Ihnen das nicht einfach erlaubt?

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