現在

now 傳回使用您的 Metabase 報表時區的目前日期時間。

使用目前日期或時間建立條件邏輯

假設您有一些專案資料,而且您想要為每個任務新增狀態欄。 我們假設今天的日期和時間是 2022 年 11 月 22 日,12:00:00。

任務 開始 截止日期 狀態
草稿 2022 年 11 月 1 日,12:00:00 2022 年 11 月 30 日,12:00:00 進行中
審查 2022 年 11 月 15 日,12:00:00 2022 年 11 月 19 日,12:00:00 需要延期
編輯 2022 年 11 月 22 日,12:00:00 2022 年 11 月 22 日,12:00:00 現在到期!

若要將任務標示為進行中,您可以使用運算式

now >= [Start] AND now < [Deadline]

若要檢查是否需要要求延期

now >= [Start] AND now >= [Deadline]

如果您正在尋找刺激感(而且您有即時資料),您可以標記 *就在此刻* 到期的任務

now = [Deadline]

若要設定結合上述所有三種情況的狀態欄,您可以將所有內容包裝在 case 運算式中

case(now >= [Start] AND now < [Deadline], "In progress",
     now >= [Start] AND now >= [Deadline], "Needs extension",
     now = [Deadline], "DUE RIGHT NOW!")

資料類型

資料類型 now 傳回
字串
數字
時間戳記
布林值
JSON

如果您的資料庫支援時區,now 會傳回 帶時區的時間戳記,否則 now 會傳回 不帶時區的時間戳記

如需有關這些資料類型在 Metabase 中的行為方式的詳細資訊,請參閱時區

限制

如果您不住在與 Metabase 報表時區相同的時區,now 可能實際上不是 *現在*(在您的當地時間)。

如果您需要比較 now 與不同時區中的欄,請使用 convertTimezone 將兩個欄都移至相同的時區。 例如

convertTimezone(now, 'UTC', <report timezone>) >= convertTimezone([Deadline], 'UTC', <source time zone>)

執行相同操作的不同方式,因為雖然您很想更多地使用自訂運算式,但現在還不是時候。

SQL

當您使用查詢產生器執行問題時,Metabase 會將您的查詢產生器設定(篩選條件、摘要等)轉換為 SQL 查詢,並針對您的資料庫執行該查詢以取得結果。

預設情況下,now 使用您的 Metabase 報表時區。 如果您的管理員尚未設定報表時區,now 將會使用您的資料庫的時區。

假設您使用 Postgres 資料庫。 如果您的 Metabase 報表時區設定為 EST,您將會以 EST 取得 now

SELECT CURRENT_TIMESTAMP AT TIME ZONE 'EST'

如果您沒有報表時區,您將會以 Postgres 資料庫的時區(通常為 UTC)取得 now

SELECT CURRENT_TIME

試算表

試算表函數 NOW() 會取得您作業系統時區(您電腦或行動裝置上的時間)的目前日期和時間。

Python

您可以使用 pandas 模組來使用 pd.Timestamp.now()。 這會為您提供一個 Timestamp 物件,其中包含您作業系統時區的目前日期和時間。

延伸閱讀

閱讀其他Metabase 版本的文件。