關於日期時間的處理,因為有很多不一樣的呈現的方式,或是有各種的需求,以至於很多人在 View 的呈現上碰到一些困難,網上其實有很多大大們的教學分享,不過我想就在這裡做一個整理與應用的說明。
在開始練習公式之前,請大家一定要先了解,每一種「函數」是不同的類別的,為什麼要先區分函數的類別呢?因為只有相同類別才可以疊加或是相減,就像是只有數字才可以做數學運算,只有文字可以做成句子。
在 Notion 的公式函數中,與日期時間相關的函數共有六個:
start()
end()
now()
fromTimestamp(*number*)
dateAdd(date, amount, text)
dateSubtract(date, amount, text)
其他不是日期時間函數,但在應用方面不可或缺的函數也有不少,如:
formatDate(date, text)dateBetween()、timestamp(date)、minute(date)、hour(date)、day(date)、date(date)、month(date)、year(date)
formatDate 的基礎操作→ 有文字屬性的函數,增加不同的呈現方式 → 用於提取日期時間的部分資訊,如時間、星期幾、哪個月、哪一年
我在運用 Notion 管理工作與生活時,發現有很多狀態是需要篩選器來呈現不同的樣式,但是如果單純只想透過篩選器的部分來呈現,其實有時挺受限制的,尤其早期他的篩選器項目其實沒有這麼多,且有些命名上挺容易誤會,這時透過公式先判斷,之後再以篩選器呈現會是個不錯的解決方案。
其中最讓我覺得最受益的,就是在待辦事項的部分,我有些任務會跨日期,例如:2023/02/01~2023/03/15,如果我透過篩選器設置,他會以日期開始的那一天作為計算的依據,當我在篩選器中設置要顯示近一個月的任務,那當日期到了2023/03/02,這個任務就不會顯示在待辦事項中,且這個篩選器呈現的畫面會超多,因為它會顯示近一個月的任務清單。如果我希望他不要顯示這麼多,且不想手動顯示的區間,那我可以透過公式先判斷「今天是否是在日期區間中」,這個公式判斷的結果是 Boolean ,因為先透過公式判斷了,在篩選器的部分,只要當這個欄位是 true 的狀態就顯示在該 View 中。
一直以來,很常覺得與日期時間有關的資料庫公式,是很複雜與麻煩的,尤其加入了正則表達式的時候,看起來就更不友善了,但要讓整個模板更好用,就不要逃避這個寫起來有點麻煩的函數。如果之後我有什麼新的需求,或是看到更厲害的資料,會更新在這篇筆記中的。
在今年的九月初 Notion 官方公布在公式部分有大版更,有很多的函數命名不太一樣,有些部分已經有修改成新版本的命名方式,之後有時間 + 心情不錯的話會陸陸續續更改資料的~~
如果你很趕或是想要直接自己修改,可以參考這篇 Notion Formula 2.0 。