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

Sådan konverteres tid til dato i den lokale tidszone under forespørgsel

Fik det endelig til at virke! Ikke særlig smuk (og jeg håber, der er en renere løsning), men dette virkede:

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

Kan dog ikke rigtig lide at skulle gøre dette:

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

Hvorfor lader postgresql dig ikke bare gøre dette?

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


  1. Fjern pivot-tabel i MySQL

  2. SQL:Find topbedømte artikler i hver kategori

  3. Hvad er grunden til, at følgende sql-kode ikke kunne indsætte data?

  4. Hvordan erklærer man en variabel i MySQL?