在其中一个Oracle数据库服务器中,当我触发“从双重选择dbtimezone”时它显示“+01:00”这是否意味着在夏天时钟将提前一小时?在另一台服务器上显示“+00:00”是否意味着数据库服务器设置为GMT?但我在oracle pl / sql中使用sysdate。客户端说Aix服务器在DST上,那么这意味着数据库服务器将在时钟更改后采用AIX服务器设置吗? 如何解决这个问题。
答案 0 :(得分:7)
答案是:这取决于。
您的数据库总共有三个时区
您的视频时区:SESSIONTIMEZONE
您可以随时更改ALTER SESSION SET TIME_ZONE=...
。它与
CURRENT_DATE
LOCALTIMESTAMP
CURRENT_TIMESTAMP
当您执行CAST({TIMESTAMP/DATE without any timezone} AS TIMESTAMP WITH {LOCAL} TIME ZONE)
默认SESSIONTIMEZONE
可以由环境变量ORA_SDTZ
或(在Windows上)由注册表项HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ
(对于32位客户端)设置,分别为。 HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ
(对于64位客户端)。
数据库时区:DBTIMEZONE
实际上这在日常使用中并不那么重要,它仅与TIMESTAMP WITH LOCAL TIME ZONE
数据类型列相关并定义存储格式。
不 SYSDATE
或SYSTIMESTAMP
的时区!!!
如果数据库包含一个带有DBTIMEZONE
列且该列包含数据的表,则无法更改数据库上的TIMESTAMP WITH LOCAL TIME ZONE
。否则可以使用ALTER DATABASE SET TIME_ZONE='...';
进行更改。在关闭并重新启动数据库之前,更改不会生效。
DBTIMEZONE
。如果在创建数据库时未提供时区,则Oracle默认为服务器操作系统的时区。
数据库服务器操作系统的时区:
此时区与
的结果相关SYSDATE
SYSTIMESTAMP
当然,无法在数据库级别更改此时区。如果您所在的国家/地区使用夏令时,则此时区可能会每年更改两次。例如,您可以使用SELECT TO_CHAR(SYSTIMESTAMP, 'tzr') FROM dual;
来查询它。
因此,如果您的数据库服务器操作系统设置正确,那么您应该从下周开始夏令时(至少在欧洲)
答案 1 :(得分:4)
在其中一个Oracle数据库服务器中,当我触发“从双重选择dbtimezone”时它显示“+01:00”这是否意味着在夏天时钟会提前一小时移动?
这意味着您的数据库时区为+01:00
与 UTC时区相比。
来自docs,
DBTIMEZONE返回数据库时区的值。回报 type是时区偏移量(格式中的字符类型) '[+ | - ] TZH:TZM')或时区区域名称,具体取决于用户的方式 在最近的CREATE中指定数据库时区值 DATABASE或ALTER DATABASE语句。
因此,数据库DBTIMEZONE
继承了数据库服务器操作系统的时区值。
虽然会话级别可以通过alter session语句覆盖SESSIONTIMEZONE
。
例如,
ALTER SESSION SET TIME_ZONE=<timezone>;
这会修改 TIMESTAMP WITH LOCAL TIME ZONE
的时区。
在另一台服务器上显示“+00:00”是否意味着数据库服务器设置为GMT?
+00:00
可以假设数据库时区设置为 UTC时区。
例如,
SELECT DBTIMEZONE FROM DUAL;
DBTIME
------
+00:00
从documentation了解详情。
答案 2 :(得分:2)
我使用以下命令解决了这个问题 “从DUAL'在时区'GMT'选择Systimestamp'此命令将始终给出GMT日期和时间,而不考虑操作系统时间。
答案 3 :(得分:0)
Oracle数据库自动确定夏令时是否对指定时区有效并返回相应的本地时间。通常,日期/时间值足以允许Oracle数据库确定夏令时是否对指定时区有效。夏令时开始或结束的时段是边界情况。例如,在美国东部地区,当夏令时生效时,时间从凌晨01:59:59变为凌晨3:00:00。 02:00:00和02:59:59之间的时间间隔不存在。该间隔中的值无效。当夏令时结束时,时间从凌晨02:00:00到凌晨01:00:01变化。 可在此处找到进一步的解释。 http://docs.oracle.com/cd/E18283_01/server.112/e10729/ch4datetime.htm#insertedID11