Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да актуализирате колона TIMESTAMP до TIMESTAMP С ЧАСОВА ЗОНА в Oracle

С малко помощ от @JustinCave , стигнах до следното решение, което постига точно това, което исках:

-- 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. Намиране на дублиращи се записи в таблица

  2. Съхранени процедури на SQL Server от Oracle®

  3. Как можете да принудите функция в клауза where да се изпълни веднъж в oracle?

  4. ORA-01652:не може да се разшири temp сегмент със 128 в пространството за таблици СИСТЕМА:Как да се разшири?

  5. Актуализиране на ред с подзаявка, връщаща множество редове