【问题标题】:Where do Oracle Functions like TZ_Offset and FROM_TZ get their data from?TZ_Offset 和 FROM_TZ 等 Oracle 函数从哪里获取数据?
【发布时间】:2016-06-18 11:02:44
【问题描述】:

我正在优化一些需要将许多时间戳转换为 UTC 的函数。我的需要是创建一个包含如下列的表:

年份 | TZ_NAME |夏令时开始 |夏令时结束

我可以使用 oracle 中的 from_tz 函数轻松转换时间戳,但是不能选择按时间戳运行。有谁知道oracle函数是如何工作的?我找不到任何详细说明 oracle 保留这些夏令时规则的文档。

有什么建议吗?

谢谢!

【问题讨论】:

标签: oracle timezone timezone-offset


【解决方案1】:

时区相关信息存储在一个文件中,按照:https://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm#i1006667

Oracle 时区文件包含有效的时区名称。这 每个时区还包括以下信息:

•与协调世界时 (UTC) 的偏移

•夏令时的转换时间

•标准时间和夏令时的缩写

【讨论】:

  • 我想这对我来说已经是最好的了。我希望 Oracle 可能会在此文件之上提供一个秘密视图以提供更多可见性。感谢您提供该链接。
  • 遗憾的是,我找不到(我查询 dba_views 以查看名称中是否有任何带有 TIME%ZONE 的内容,但只有 v$timezone_file 和 v$timezone_names 存在),这两个都没有你所追求的信息。
  • 请注意,夏令时和时区并不像大多数人想象的那样恒定。例如,看看Singapore Standard TimeTime in Malaysia,他们在 80 年内改变了 6 次时区!
  • 这绝对是一个难以维护的规则集,这就是为什么每个人都应该以 UTC 存储时间!我发现这个最佳实践集合很有趣:DST and TZ Best Practices
猜你喜欢
  • 2018-03-09
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-21
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多