会话如何获得初始时区
How do sessions get their initial timezone
当我在 SQL 开发人员 中使用
检查会话时区时
select sessiontimezone from dual;
我得到 'Europe/Berlin'
。当我在 SQL*Plus 中做同样的事情时,我得到 '+02:00'
.
这在处理 TIMESTAMP WITH LOCAL TIMEZONE
时会有所不同,因为由于夏令时,德国有时处于 UTC+01 时区,有时处于 UTC+02 时区。 (目前是 UTC+02。)
这两个工具如何获取/设置(?)它们的默认时区?
系统信息:
- 通过 TNS 连接。
- SQL开发者:18.1.0.095.1630
- Oracle DBMS:Oracle 数据库 11g 企业版 11.2.0.4.0 版 - 64 位生产
- 操作系统服务器:x86_64/Linux2.4.xx
- 操作系统客户端:Microsoft Windows 10 Professional
documentation只列出环境变量ORA_SDTZ
。
但是,它取自以下设置:
注册表项HKCU\SOFTWARE\ORACLE\KEY_{Oracle Home Name}\ORA_SDTZ
注册表项HKLM\SOFTWARE\ORACLE\KEY_{Oracle Home Name}\ORA_SDTZ
(对应 HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle Home Name}\ORA_SDTZ
)
环境变量ORA_SDTZ
您机器的当前区域设置(最有可能)。
数据库时区如果从上面找到none(只是一个假设)
您的客户端应用程序可能有一些额外的会话时区来源,请参见 How to change the timezone of Oracle SQL Developer / Oracle Data Modeler? 作为示例。
环境变量应具有最高优先级。
当我在 SQL 开发人员 中使用
检查会话时区时select sessiontimezone from dual;
我得到 'Europe/Berlin'
。当我在 SQL*Plus 中做同样的事情时,我得到 '+02:00'
.
这在处理 TIMESTAMP WITH LOCAL TIMEZONE
时会有所不同,因为由于夏令时,德国有时处于 UTC+01 时区,有时处于 UTC+02 时区。 (目前是 UTC+02。)
这两个工具如何获取/设置(?)它们的默认时区?
系统信息:
- 通过 TNS 连接。
- SQL开发者:18.1.0.095.1630
- Oracle DBMS:Oracle 数据库 11g 企业版 11.2.0.4.0 版 - 64 位生产
- 操作系统服务器:x86_64/Linux2.4.xx
- 操作系统客户端:Microsoft Windows 10 Professional
documentation只列出环境变量ORA_SDTZ
。
但是,它取自以下设置:
注册表项
HKCU\SOFTWARE\ORACLE\KEY_{Oracle Home Name}\ORA_SDTZ
注册表项
HKLM\SOFTWARE\ORACLE\KEY_{Oracle Home Name}\ORA_SDTZ
(对应
HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle Home Name}\ORA_SDTZ
)环境变量
ORA_SDTZ
您机器的当前区域设置(最有可能)。
数据库时区如果从上面找到none(只是一个假设)
您的客户端应用程序可能有一些额外的会话时区来源,请参见 How to change the timezone of Oracle SQL Developer / Oracle Data Modeler? 作为示例。
环境变量应具有最高优先级。