Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle更改夏令时的时间戳列值_Oracle_Plsql - Fatal编程技术网

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

Oracle更改夏令时的时间戳列值,oracle,plsql,Oracle,Plsql,我有一个timestamp列,其值为12/02/2019 02:00:00。但当夏时制的月份到来时,该值会自动更改为2019年2月12日01:00:00。现在,如果我将时区设置为欧洲/伊斯坦布尔,它将成为原始值。但当夏令时,我必须每隔几个月更改一次时区。我需要查询返回原始值。对于正常月份,我必须再次将时区设置为Asia/Istanbul,否则值会向前更改。如果您的列是用数据类型定义的,则它将与数据库时区一起存储,并与会话时区一起显示 请参见本例中C3列的显示值(而非存储值)如何从20:28更改为

我有一个timestamp列,其值为12/02/2019 02:00:00。但当夏时制的月份到来时,该值会自动更改为2019年2月12日01:00:00。现在,如果我将时区设置为欧洲/伊斯坦布尔,它将成为原始值。但当夏令时,我必须每隔几个月更改一次时区。我需要查询返回原始值。对于正常月份,我必须再次将时区设置为Asia/Istanbul,否则值会向前更改。

如果您的列是用数据类型定义的,则它将与数据库时区一起存储,并与会话时区一起显示

请参见本例中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         
创建表格“TIMESTAMP_TABLE_TURKEY”(“AUQ_ID”编号(10,0)非空启用,“AUD_ID”编号(10,0)非空启用,“AUS_ID”编号(10,0),“TSK_ID”编号(10,0),“AUQ_计划的_DTTM”时间戳(6),“AUQ_创建的_DTTM”时间戳(6)非空启用,“AUQ_DESC”VARCHAR2(255)非空启用,“AUQ_回溯频率_CMP ID”编号(10,0),“AUQ\u LOOKBACK\u PIVOT\u DTTM”时间戳(6),“AUQ\u LOOKBACK\u START\u DTTM”时间戳(6),;这是表创建查询。我没有设置带有本地时区的时间戳列。