sql >> Database >  >> RDS >> Oracle

Een TIMESTAMP-kolom bijwerken naar TIMESTAMP WITH TIME ZONE in Oracle

Met een beetje hulp van @JustinCave , kwam ik tot de volgende oplossing, die precies doet wat ik wilde:

-- 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. Locatie van bestand tnsnames.ora op code ophalen

  2. mysql:impliciete transactieverplichtingen omzeilen?

  3. Typeor Retourneert niet alle gegevens

  4. Gegevensmaskering in DB-toepassingen