DatetimeAdd
datetimeAdd
接受日期時間值,並在其中加入一些時間單位。當您處理以「開始」和「結束」標記的時間序列資料(例如工作階段或訂閱資料)時,此函數非常有用。
語法 | 範例 |
---|---|
datetimeAdd(欄位, 數量, 單位) |
datetimeAdd("2021-03-25", 1, "month") |
接受時間戳記或日期值,並在其中加入指定的時間單位數量。 | 2021-04-25 |
參數
欄位
可以是以下任一項
- 時間戳記欄位的名稱、
- 傳回日期時間的自訂運算式,或
- 格式為
"YYYY-MM-DD"
或"YYYY-MM-DDTHH:MM:SS"
的字串(如上述範例所示)。
單位
可以是以下任一項
- 「年」
- 「季」
- 「月」
- 「日」
- 「小時」
- 「分鐘」
- 「秒」
- 「毫秒」
數量
:
- 整數。您不能使用小數值。例如,您不能加入「半年」(0.5)。
- 可以是負數:
datetimeAdd("2021-03-25", -1, "month")
將傳回2021-04-25
。
計算結束日期
假設您是咖啡鑑賞家,而且想要追蹤咖啡豆的新鮮度
咖啡 | 開封日 | 最佳賞味期 |
---|---|---|
DAK Honey Dude | 2022 年 10 月 31 日 | 2022 年 11 月 14 日 |
NO6 Full City Espresso | 2022 年 11 月 7 日 | 2022 年 11 月 21 日 |
Ghost Roaster Giakanja | 2022 年 11 月 27 日 | 2022 年 12 月 11 日 |
在這裡,「最佳賞味期」是具有以下運算式的自訂欄
datetimeAdd([Opened On], 14, 'day')
檢查目前的日期時間是否在間隔內
假設您想要檢查今天的日期是否落在開始日期和結束日期之間。假設「今天」是 2022 年 12 月 1 日。
咖啡 | 開封日 | 最佳賞味期 | 今天仍然新鮮 |
---|---|---|---|
DAK Honey Dude | 2022 年 10 月 31 日 | 2022 年 11 月 14 日 | 否 |
NO6 Full City Espresso | 2022 年 11 月 7 日 | 2022 年 11 月 21 日 | 否 |
Ghost Roaster Giakanja | 2022 年 11 月 27 日 | 2022 年 12 月 11 日 | 是 |
「最佳賞味期」是具有以下運算式的自訂欄
datetimeAdd([Opened On], 14, 'day')
「今天仍然新鮮」使用 case 來檢查目前的日期 (now) 是否介於「開封日」和「最佳賞味期」之間的日期
case(between(now, [Opened On], [Finish By]), "Yes", "No")
接受的資料類型
資料類型 | 與 datetimeAdd 搭配使用 |
---|---|
字串 | ❌ |
數字 | ❌ |
時間戳記 | ✅ |
布林值 | ❌ |
JSON | ❌ |
我們使用「時間戳記」和「日期時間」來談論 Metabase 支援的任何時間資料類型。如需 Metabase 中這些資料類型的詳細資訊,請參閱時區。
如果您的時間戳記在資料庫中儲存為字串或數字,則管理員可以從「表格中繼資料」頁面將它們轉換為時間戳記。
限制
如果您使用的是 MongoDB,datetimeAdd
僅適用於 5 以上的版本。
相關函數
本節涵蓋與 Metabase datetimeAdd
運算式運作方式相同的函數和公式,並附註如何為您的使用案例選擇最佳選項。
其他工具
datetimeSubtract
datetimeSubtract
和 datetimeAdd
是可互換的,因為您可以對 數量
使用負數。通常,最好避免雙重否定(例如減去負數)。
datetimeSubtract([Opened On], -14, "day")
與以下程式碼作用相同
datetimeAdd([Opened On], 14, "day")
SQL
當您使用查詢產生器執行問題時,Metabase 會將您的圖形化查詢設定(篩選條件、摘要等)轉換為查詢,並針對您的資料庫執行該查詢以取得結果。
如果我們的咖啡範例資料儲存在 PostgreSQL 資料庫中
SELECT opened_on + INTERVAL '14 days' AS finish_by
FROM coffee
相當於 Metabase datetimeAdd
運算式
datetimeAdd([Opened On], 14, "day")
試算表
如果我們的咖啡範例資料在試算表中,「開封日」位於 A 欄且具有日期格式,則試算表函數
A:A + 14
產生與以下程式碼相同的結果
datetimeAdd([Opened On], 14, "day")
大多數試算表工具都需要針對不同的時間單位使用不同的函數(例如,您會使用不同的函數將「月」加入日期)。datetimeAdd
可讓您輕鬆地將所有這些函數轉換為單一一致的語法。
Python
假設咖啡範例資料位於名為 df
的 pandas
資料框架欄中,您可以匯入 datetime
模組並使用 timedelta
函數
df['Finish By'] = df['Opened On'] + datetime.timedelta(days=14)
相當於
datetimeAdd([Opened On], 14, "day")
延伸閱讀
閱讀其他Metabase 版本的文件。