PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Presto SQL :Mengubah zona waktu menggunakan string zona waktu yang datang sebagai akibat dari kueri tidak berfungsi

AT TIME ZONE hanya menerima literal atau interval.

Presto 320 menambahkan with_timezone (untuk timestamp nilai) at_timezone (untuk timestamp with time zone nilai) persis untuk tujuan ini.

Jika Anda menggunakan versi Presto yang lebih lama (seperti Athena pada tulisan ini), Anda dapat menggunakan solusi berikut. Anda dapat memberikan nilai stempel waktu Anda ke varchar , gabungkan dengan zona dan masukkan ke timestamp with time zone .

presto> select cast(cast(t as varchar) || ' ' || zone as timestamp with time zone)
  from (values (timestamp '2017-06-01 12:34:56.789', 'US/Pacific')) x(t, zone);
                    _col0
---------------------------------------------
 2017-06-01 12:34:56.789 America/Los_Angeles
(1 row)

(Catatan:diuji pada Presto 320. Jika ini belum berhasil di Athena, beri tahu saya.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL, PILIH dari max id

  2. Perbedaan antara Replikasi Aliran dan replikasi logis

  3. Migrasi Rails:mencoba mengubah jenis kolom dari string menjadi integer

  4. Rel memperluas bidang dengan ruang lingkup, PG tidak menyukainya

  5. Banyak ke Banyak Tabel - Performa buruk