在SQL Server中可以创建这样的表:
create table test (
[TimeStamp_test] [datetime] NOT NULL DEFAULT (getutcdate())
);
Run Code Online (Sandbox Code Playgroud)
我们有类似的对任何事物getutcdate()的oracle?
我知道使用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;
Run Code Online (Sandbox Code Playgroud)
分享和享受.
编辑:为了它的乐趣,我决定尝试将其包含在正确的时区中.我发现只是在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'));
Run Code Online (Sandbox Code Playgroud)
可见,但它确实获得了UTC时间列的时区.
抵抗是没用的.
| 归档时间: |
|
| 查看次数: |
4862 次 |
| 最近记录: |