gpt4 book ai didi

oracle - 获取 UTC 日期作为默认值

转载 作者:行者123 更新时间:2023-12-01 11:52:20 25 4
gpt4 key购买 nike

在 SQL Server 中可以创建这样的表:

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

我们在 oracle 中有类似 getutcdate() 的东西吗?

我知道使用 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;

分享和享受。


编辑:为了好玩,我决定尝试让它包含正确的时区。我发现只是在 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 时间列的时区。

抵抗是没有用的。

关于oracle - 获取 UTC 日期作为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10247486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com