sql >> Databáze >  >> RDS >> Oracle

Jak aktualizovat sloupec TIMESTAMP na TIMESTAMP WITH TIME ZONE v Oracle

S malou pomocí od @JustinCave , dospěl jsem k následujícímu řešení, které splňuje přesně to, co jsem chtěl:

-- 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. SQL SELECT pro začátečníky

  2. Jak obnovit databázi dvojitě zakódovanou pomocí mysqldump

  3. Nějaký důvod, proč nepoužívat uložené procedury pro každý dotaz?

  4. Geolokační dotaz MySQL