これを試して:
CREATE TABLE MY_TEST
(ID NUMBER,
CURR_TIMESTAMP TIMESTAMP DEFAULT SYSTIMESTAMP,
UTC_TIMESTAMP TIMESTAMP DEFAULT SYS_EXTRACT_UTC(SYSTIMESTAMP));
INSERT INTO MY_TEST(ID) VALUES(1);
SELECT * FROM MY_TEST;
共有してお楽しみください。
編集:それを楽しむために、これに正しいタイムゾーンを含めるようにしようと決めました。SYS_EXTRACT_UTC(SYSTIMESTAMP) を TIMESTAMP WITH TIME ZONE 列に入れるだけで、値の時間部分が正しく変更されましたが、タイムゾーンはそのままでした。少しいじった後、私は次のことを思いつきました:
CREATE TABLE RPJ_TEST
(ID NUMBER,
CURR_TIMESTAMP TIMESTAMP WITH TIME ZONE DEFAULT SYSTIMESTAMP,
UTC_TIMESTAMP TIMESTAMP WITH TIME ZONE
DEFAULT TO_TIMESTAMP_TZ(TO_CHAR(SYS_EXTRACT_UTC(SYSTIMESTAMP)) || ' 00:00',
'DD-MON-YYYY HH:MI:SS.FF6 PM TZH:TZM'));
恐ろしいですが、UTC 時間列のタイムゾーンを正しく取得します。
抵抗は無駄です。