2012-04-20 16 views
3

は、このようなテーブルを作成することが可能である:デフォルト値としてUTCの日付を取得

create table test (
    [TimeStamp_test] [datetime] NOT NULL DEFAULT (getutcdate()) 
); 

我々はoraclegetutcdate()に似た任意のものを持っていますか?

私はSELECT SYS_EXTRACT_UTC FROM DUALを使用しています(この表に挿入時にトリガーを使用しています)。

他の簡単なオプションがある場合はお知らせください、ありがとうございます。

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; 

共有して楽しむ:

答えて

5

これを試してみてください。


編集:それを楽しむために、これを試して正しいタイムゾーンを含めることにしました。私は、TIMESTAMP WITH TIME ZONE列にSYS_EXTRACT_UTC(SYSTIMESTAMP)を実行するだけで、値の時間部分が正しく変更されたが、タイムゾーンだけが残っていることがわかった。

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時刻欄の右側のタイムゾーンを取得しない:約いじくるのビットの後、私は、次のを思い付きました。

抵抗は無駄です。

+0

私のために動作する。..おかげでボブ – dsm

+0

は良いものをthatsの..おかげでボブ – dsm

0

これは、列はUTCでデフォルトのタイムスタンプを受け取るようにする簡単な方法です:

CREATE TABLE TEST (ID NUMBER, UTC_TIMESTAMP TIMESTAMP WITH TIME ZONE DEFAULT FROM_TZ(SYS_EXTRACT_UTC(SYSTIMESTAMP), 'UTC')); 
関連する問題