Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Konversi Zona Waktu Oracle (menggunakan from_tz)

to_timestamp() mendapat string (VARCHAR2, CHAR ...) jika Anda mencoba memberikan tanggal, maka Oracle akan mengubahnya menjadi string menurut NLS_DATE_FORMAT yang mungkin berbeda di lingkungan yang berbeda dan mengembalikan hasil yang tidak terduga (seperti dalam kasus ini) .
Yang harus Anda lakukan adalah menggunakan to_char terlebih dahulu, sehingga kueri Anda dapat terlihat seperti ini:

select to_date(to_char((from_tz(to_timestamp(to_char(DATABASE_DATE, 'YYYY-MM-DD HH:MI:SS PM'), 'YYYY-MM-DD HH:MI:SS PM') ,'America/New_York')
at time zone 'America/Los_Angeles'),'YYYY-MM-DD HH:MI:SS PM'),'YYYY-MM-DD HH:MI:SS PM') as localtime
from table

PERBARUI: jika saya memahami Anda dengan benar maka Anda menginginkan sesuatu seperti ini:

select to_char((from_tz(to_timestamp(to_char(DATABASE_DATE, 'YYYY-MM-DD HH:MI:SS PM'), 'YYYY-MM-DD HH:MI:SS PM') ,'America/New_York')
    at time zone 'America/Los_Angeles'),'YYYY-MM-DD HH:MI:SS PM TZD') as localtime
    from table


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle cara mengimpor kelas Java yang hilang saat memanggil Java dari plsql

  2. Oracle SQ Mengidentifikasi Saudara melalui saudara kandung

  3. Buat indeks pada tabel yang ada Oracle

  4. Bagaimana saya bisa mengatur ulang semua urutan di Oracle DB saya ke nilai 0?

  5. Memperbarui Baris dengan Subquery Mengembalikan Beberapa Baris