sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man konverterar tid till datum i den lokala tidszonen under förfrågan

Äntligen fick det att fungera! Inte särskilt snygg (och jag hoppas att det finns en renare lösning) men det här fungerade:

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

Gillar inte riktigt att behöva göra det här:

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

Hur kommer det sig att postgresql inte låter dig bara göra detta?

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


  1. Ansluter SQL-utvecklare till Oracle 12c

  2. Jämföra datum i MySQL och ignorera tidsdelen av ett DateTime-fält

  3. Hur FROM_BASE64() fungerar i MariaDB

  4. Splitting Strings:En uppföljning