windows - 将 windows 时区映射到 Oracle 时区
问题描述
我有一个使用 GetTimeZoneInformation 读取 PC 时区信息的应用程序。然后,当我建立与 Oracle 的连接时,我需要“更改会话设置 time_zone = <time_zone>”。如果我只使用偏移量,oracle 将忽略夏令时设置,所以我需要指定时区名称。然而,oracle 在 v$timezone_names 表中有超过 2000 条记录,它们都不匹配 Windows 通过 tzutil 或 GetTimeZoneInformation 返回的时区。考虑到我需要保留夏令时设置,有什么方法可以将时区窗口转换为 oracle 中的相应时区。
解决方案
实际上这是不可能的。Oracle 使用IANA 时区数据库。尝试tzutil /l
获取具有替代名称的所有时区列表。
或者看看如何在 Windows 和 IANA 时区之间进行转换?
注意,ALTER SESSION SET TIME_ZONE = ...
您也可以通过环境变量ORA_SDTZ
或在您的注册表中预设 Oracle 会话时区,而不是
HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_<Oracle Home>\ORA_SDTZ
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Oracle\KEY_<Oracle Home>_32bit\ORA_SDTZ
推荐阅读
- reactjs - Recharts:条形图中每个条形的不同渐变
- php - 无法获取加入多个 Eloquent 关系的数据
- fuse - 在 appimage 中使用 unionfs
- javascript - 反应树视图库
- javascript - 自动脚本打开模式并单击它
- excel - 如何在vba excel中n次后调用函数
- tensorflow - 如何从 BERT 编码器权重中恢复令牌
- javascript - 如何从 server.js 调用 node.js 库?
- spring - 如何使用 Spring Boot 内置登录表单创建 JWT 客户端?
- html - 使用 HttpClient 发出 get 请求