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

tanggal/waktu Konversi antara zona waktu yang berbeda

Pertama mari kita larutkan ekspresimu

FROM_TZ(CAST(TO_DATE(TO_CHAR(q.created_date, 'DDMMYYYY:HH24:MI:SS'), 'DDMMYYYY:HH24:MI:SS') AS TIMESTAMP), 'Europe/London') AT TIME ZONE 'America/New_York'

melakukan hal berikut:

  1. TO_CHAR(q.created_date, 'DDMMYYYY:HH24:MI:SS') -> Konversi created_date nilai ke VARCHAR2
  2. TO_DATE(..., 'DDMMYYYY:HH24:MI:SS') -> Ubah kembali menjadi DATE
  3. CAST(... AS TIMESTAMP) -> Ubah menjadi TIMESTAMP (tanpa zona waktu)
  4. FROM_TZ(..., 'Europe/London') -> Lampirkan zona waktu 'Eropa/London' ke sana
  5. ... AT TIME ZONE 'America/New_York' -> Ubah ke zona waktu 'Amerika/New_York'

Poin 1,2 dan 3 tidak berguna! Sejak created_date adalah TIMESTAMP kamu bisa melakukannya lebih pendek

TO_CHAR(FROM_TZ(q.created_date, 'Europe/London') AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')

Jika SESSIONTIMEZONE your Anda adalah Europe/London Anda bahkan dapat membuat

TO_CHAR(q.created_date AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entity Framework Oracle dan Sql Server - cara membangun aplikasi independen database

  2. Sintaks SQL atau penyempitan basis data?

  3. 2 penawaran teratas dengan jumlah semua penawaran

  4. fitur apa yang digunakan dalam edisi standar oracle seperti yang dipartisi dalam edisi oracle enterprise

  5. Oracle express pengecualian 11g aneh