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

Cara memperbarui kolom TIMESTAMP ke TIMESTAMP WITH TIME ZONE di Oracle

Dengan sedikit bantuan dari @JustinCave , saya sampai pada solusi berikut, yang menyelesaikan persis seperti yang saya inginkan:

-- Rename the old columns so we can use them as a data source *AND* so
-- we can roll back to them if necessary.
alter table OOPSIE_TABLE rename column COLUMN_A to OLD_COLUMN_A;
alter table OOPSIE_TABLE rename column COLUMN_B to OLD_COLUMN_B;
-- Define COLUMN_A and COLUMN_B to have TIME ZONE support.
alter table OOPSIE_TABLE add (
    COLUMN_A timestamp(6) with time zone,
    COLUMN_B timestamp(6) with time zone
);
-- Populate the "new" columns with the adjusted version of the old data.
update OOPSIE_TABLE set
    COLUMN_A = from_tz(OLD_COLUMN_A, 'America/New_York') at time zone 'UTC',
    COLUMN_B = from_tz(OLD_COLUMN_B, 'America/New_York') at time zone '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. Petualangan Pembelian Ringan

  2. Bagaimana menemukan baris yang terkunci di Oracle

  3. Mendapat minus satu dari panggilan baca

  4. Cara menginstal Opsi Prosedural di Oracle 11gr2

  5. Jenis objek apa yang dikembalikan oleh Spring Hibernate Template untuk kueri penghitungan di Oracle?