時區

Metabase 盡力確保在您想要的任何時區中提供適當且準確的報告。但時區是很神秘的東西。

時區設定

以下設定時區的位置都可能影響您看到的資料

  • Database - 包括全域資料庫時區設定、特定欄位類型設定,甚至個別資料值。
  • OS & JVM - 在執行 Metabase 的任何系統上,作業系統和 Java 虛擬機器的時區設定都可能影響您的報告。
  • Metabase - 在 Metabase 內部,報告時區設定(如果已設定)會影響資料的報告方式。
  • Metabase Cloud - 託管 Metabase Cloud 執行個體的伺服器上的時區。

為確保正確報告,重要的是在所有位置一致地設定時區。Metabase 建議以下設定

  • 請確認您的所有資料庫欄位都已正確設定為包含時區感知
  • 除非您有特殊需求,否則最好將資料庫報告時區設定為 UTC,並將所有日期/時間相關值儲存在 UTC 中。
  • 將 JVM 設定為使用您想要用於報告的時區,理想情況下,這也應與資料庫的時區相符。
  • 將 Metabase Report Timezone 設定為符合您想要在報告中看到的時區,同樣地,這應該與您進行的其他時區設定相符。
  • 如果您想要變更 Metabase Cloud 時區,請聯絡支援

資料類型

您可以將資料庫欄位儲存為特定資料類型,使其具有時區感知能力,例如

資料類型 描述 範例
timestamp with time zone 知道位置。 2022-12-28T12:00:00 AT TIME ZONE 'America/Toronto'
timestamp with offset 知道與 UTC 的時間差。 2022-12-28T12:00:00-04:00
timestamp without time zone 沒有時區資訊。 2022-12-28T12:00:00

確切的資料類型將取決於您的資料庫。某些 Metabase 功能僅適用於特定資料類型

常見的陷阱

  1. 您的資料庫正在使用沒有任何時區資訊的日期/時間欄位。通常,當發生這種情況時,您的資料庫會假設所有資料都來自資料庫中設定的任何時區,或者可能只是預設為 UTC(請查看您的資料庫供應商以確定)。
  2. 您的 JVM 時區與您選擇的 Metabase Report Timezone 不同。這是一個非常常見的問題,可以透過啟動 java 時正確設定 -Duser.timezone=<timezone> 選項以符合您的 Metabase 報告時區來修正。

如果您仍然遇到時區問題,請查看時區疑難排解指南

閱讀其他Metabase 版本的文件。