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

Pernyataan dan ketentuan kueri Oracle SQL dengan stempel waktu dan tanggal ISO

Berdasarkan pertanyaan sebelumnya , Anda tergoda untuk memperlakukan T dan Z sebagai literal karakter, dan pada dasarnya mengabaikannya, menggunakan:

to_timestamp_tz('2014-01-28T12:00:0Z', 'YYYY-MM-DD"T"HH24:MI:SS"Z"')

Jika Anda menggunakan to_timestamp_tz() tanpa menentukan zona waktu maka default ke zona waktu sesi Anda, seperti halnya to_timestamp(); jadi waktu yang ditentukan dalam Zulu/UTC kehilangan informasi zona tersebut:

alter session set time_zone = 'America/New_York';
select to_timestamp_tz('2014-01-28T12:00:0Z',
  'YYYY-MM-DD"T"HH24:MI:SS"Z"') from dual;

TO_TIMESTAMP_TZ('2014-01-28T12:00:0Z','YYYY-MM-DD"T"HH24:MI:SS"Z"')
-------------------------------------------------------------------
28-JAN-14 12.00.00.000000000 AMERICA/NEW_YORK                       

Waktu 12:00 Anda ditampilkan sebagai 12:00 di New York, bukan 12:00 UTC.

Konversi yang lebih aman, dengan asumsi nilai Anda selalu dianggap mewakili UTC, adalah menentukan zona waktu secara eksplisit dengan from_tz() fungsi :

WHERE MODIFICATION_DATE >= from_tz(to_timestamp('2014-01-28T12:00:0Z',
  'YYYY-MM-DD"T"HH24:MI:SS"Z"'), 'UTC')

Ini mendapatkan waktu UTC dengan benar:

alter session set time_zone = 'America/New_York';
select from_tz(to_timestamp('2014-01-28T12:00:0Z',
  'YYYY-MM-DD"T"HH24:MI:SS"Z"'), 'UTC') from dual;

FROM_TZ(TO_TIMESTAMP('2014-01-28T12:00:0Z','YYYY-MM-DD"T"HH24:MI:SS"Z"'),'UTC')
-------------------------------------------------------------------------------
28-JAN-14 12.00.00.000000000 UTC                                                


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porting Oracle PL/SQL ke Snowflake tanpa JavaScript

  2. Kelola Kata Sandi dan Sumber Daya di Oracle menggunakan Profil

  3. Hibernasi masalah kinerja dengan hubungan OneToMany / nullable

  4. Ekspresi reguler Oracle membagi string dari kejadian terakhir

  5. Buat File Excel (.xlsx) menggunakan PL/SQL