时区值

Vertica 尝试与时区的 SQL 标准定义兼容。但是,SQL 标准的日期和时间类型与功能组合较为怪异。存在以下明显问题:

  • 虽然 DATE 类型不含关联时区,但 TIME/TIMETZ 类型可以包含关联时区。除非与日期和时间相关联,否则时区在现实世界中几乎没有任何意义,因为偏移量在一年当中会随夏令时边界的变化而变化。

  • Vertica 假设本地时区适用于任何仅包含日期或时间的数据类型。

  • 默认时区指定为相对于 UTC 的偏移量常数。因此,在跨 DST 边界进行日期/时间算术时,不可能适应夏令时。

为了克服这些困难,Micro Focus 建议您在使用时区时使用包含日期和时间的日期/时间类型。Micro Focus 建议您不要使用类型 TIME WITH TIME ZONE,,即使它支持传统应用程序且符合 SQL 标准也不例外。

时区和时区约定不仅仅受地球几何形状的影响,还会受政治决策的影响。1900 年代,全球时区开始趋于标准化,但仍然会面临一些随机变化,特别是夏令时规则方面。

Vertica 目前支持从 1902 年到 2038 年这个时间段确立的夏令时规则,对应于完整传统 UNIX 系统时间。一旦时间超出该范围,则视为所选时区的“标准时间”,无论该时间处于一年当中的哪个时段。