时区
Metabase会尽力确保在您选择的时区中正确和准确地报告。但是时区是神秘的存在。
时区设置
以下设置时区的地方都可能影响您看到的数据
数据库
- 包括全局数据库时区设置、特定列类型设置,甚至是单个数据值。OS & JVM
- 在运行Metabase的任何系统上,操作系统的时区设置以及Java虚拟机的时区设置都可能影响您的报告。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
报告时区
选择不同。这是一个非常常见的问题,可以通过设置java的-Duser.timezone=<timezone>
选项来纠正,使其与Metabase报告时区相匹配。
如果您仍然遇到时区问题,请参阅时区故障排除指南。
阅读其他Metabase版本的文档。