时区

Metabase 致力于确保在您所需的任何时区中进行正确和准确的报告。但是,时区是神秘的产物。

时区设置

以下设置时区的位置都可能影响您看到的数据

  • 数据库 - 包括全局数据库时区设置、特定列类型设置,甚至单个数据值。
  • 操作系统和 JVM - 无论 Metabase 运行在哪个系统上,操作系统和 Java 虚拟机(JVM)的时区设置都可能影响您的报告。
  • Metabase - 在 Metabase 内部,报告时区设置(如果设置)将影响您的数据报告方式。
  • Metabase 云 - 托管 Metabase 云实例的服务器上的时区。

为确保正确报告,时区在所有位置保持一致非常重要。Metabase 建议以下设置:

  • 确保所有数据库列都已正确配置以包含 时区感知
  • 除非有特殊需求,否则最好将数据库报告时区设置为 UTC,并以 UTC 格式存储所有日期/时间相关的值。
  • 将您的 JVM 配置为使用您希望用于报告的相同时区,理想情况下,该时区也应与您的数据库时区匹配。
  • 将 Metabase 的 报告时区 设置为您希望报告显示的时区,同样,这也应与您已进行的其他时区设置匹配。
  • 如果您想更改 Metabase 云的时区,请 联系支持人员

数据类型

您可以通过将数据库列存储为特定数据类型(例如)来使其具有时区感知功能:

数据类型 描述 示例
带时区的时间戳 了解位置信息。 2022-12-28T12:00:00 AT TIME ZONE 'America/Toronto'
带偏移量的时间戳 了解与 UTC 的时差。 2022-12-28T12:00:00-04:00
不带时区的时间戳 无时区信息。 2022-12-28T12:00:00

具体的数据类型将取决于您的数据库。某些 Metabase 功能仅适用于特定数据类型

常见陷阱

  1. 您的数据库正在使用不包含任何时区信息的日期/时间列。通常,当这种情况发生时,您的数据库会假定所有数据都来自数据库配置的任何时区,或者可能只是默认为 UTC(请咨询您的数据库供应商以确认)。
  2. 您的 JVM 时区与您的 Metabase 报告时区 选择不同。这是一个非常常见的问题,可以通过使用 -Duser.timezone=<timezone> 选项正确设置为与您的 Metabase 报告时区匹配来启动 Java 来纠正。

如果您仍然遇到时区问题,请查阅时区故障排除指南

阅读其他 Metabase 版本的文档

© . All rights reserved.