时区
Metabase 尽力确保以您想要的任何时区进行正确和准确的报告。但是时区是神秘的生物。
时区设置
以下时区设置位置都可能影响您看到的数据
数据库
- 包括全局数据库时区设置、特定列类型设置,甚至单个数据值。操作系统和 JVM
- 在运行 Metabase 的任何系统上,操作系统和 Java 虚拟机 (JVM) 的时区设置都可能影响您的报告。Metabase
- 在 Metabase 内部,报告时区设置(如果已设置)将影响您的数据报告方式。Metabase Cloud
- 托管您的 Metabase Cloud 实例的服务器上的时区。
推荐设置
为确保正确报告,时区在所有位置保持一致非常重要。Metabase 建议以下设置
- 确保所有数据库列都已正确设置,以包括时区感知。
- 除非您有特殊需求,否则最好将数据库报告时区设置为 UTC,并将所有日期/时间相关值存储为 UTC。
- 将您的 JVM 配置为使用您想要用于报告的相同时区,理想情况下,该时区也应与您的数据库时区匹配。
- 将 Metabase
报告时区
设置为与您希望在报告中看到的时区匹配,同样,这应与您已进行的其他时区设置匹配。 - 如果您想更改 Metabase Cloud 时区,请联系支持。
数据类型
您可以通过将数据库列存储为特定的数据类型来使其具有时区感知功能,例如
数据类型 | 描述 | 示例 |
---|---|---|
带时区的时间戳 |
知道位置。 | 2022-12-28T12:00:00 AT TIME ZONE 'America/Toronto' |
带偏移量的时间戳 |
知道与 UTC 的时差。 | 2022-12-28T12:00:00-04:00 |
不带时区的时间戳 |
无时区信息。 | 2022-12-28T12:00:00 |
确切的数据类型将取决于您的数据库。某些 Metabase 功能仅适用于特定的数据类型
常见陷阱
- 您的数据库正在使用不包含任何时区信息的日期/时间列。通常,当发生这种情况时,您的数据库会假定所有数据都来自数据库配置的时区,或者可能只是默认设置为 UTC(请咨询您的数据库供应商以确定)。
- 您的 JVM 时区与您的 Metabase
报告时区
选择不同。这是一个非常常见的问题,可以通过使用正确设置为匹配您的 Metabase 报告时区的-Duser.timezone=<timezone>
选项启动 Java 来纠正。
如果您仍然遇到时区问题,请查看时区故障排除指南。
阅读其他版本的 Metabase 的文档。