現在
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 版本的文件。