gpt4 book ai didi

Oracle 更改夏令时的时间戳列值

转载 作者:行者123 更新时间:2023-12-04 13:33:43 24 4
gpt4 key购买 nike

我有一个时间戳列,其值为 12/02/2019 02:00:00。但是当夏令时的月份到来时,该值会自动更改为 12/02/2019 01:00:00。现在,如果我将时区设置为欧洲/ Istanbul 尔,它将成为原始值。但是当夏令时发生时,我必须每隔几个月不断更改时区。我需要查询返回原始值。同样,对于正常月份,我必须将时区设置为亚洲/ Istanbul 尔,否则值会向前变化。

最佳答案

如果您的列是用 timestamp with local time zone 定义的数据类型,它将与数据库时区一起存储并与 session 时区一起显示。
看看这个例子中 C3 列的显示值(不是存储值)是如何从 20:28 到 21:28 变化的:

SQL> create table t (
c1 timestamp,
c2 timestamp with time zone,
c3 timestamp with local time zone
);

SQL> alter session set time_zone = 'Europe/Rome';

SQL> insert into t (c1, c2, c3) values (systimestamp, systimestamp, systimestamp);

SQL> select * from t;

C1 C2 C3
-------------------------------------------------- ----------------------------------- -----------------------------------
20/08/2020 20:28:17.942586 20/08/2020 20:28:17.942586 +02:00 20/08/2020 20:28:17.942586

SQL> alter session set time_zone = 'Europe/Istanbul';

SQL> select * from t;

C1 C2 C3
-------------------------------------------------- ----------------------------------- -----------------------------------
20/08/2020 20:28:17.942586 20/08/2020 20:28:17.942586 +02:00 20/08/2020 21:28:17.942586

关于Oracle 更改夏令时的时间戳列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63509688/

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