sql >> データベース >  >> RDS >> Oracle

OracleでTIMESTAMP列をTIMESTAMPWITHTIMEZONEに更新する方法

    @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. ORA-00900:無効なSQL文エラー?SQLの何が問題になっていますか?

    2. すべてのユーザーテーブルを削除するにはどうすればよいですか?

    3. SQLで2つのテーブルからデータをフェッチする方法

    4. MySQLビューは通常のクエリよりも高速ですか?