はじめに
Notion Formula の第25回目は、「時刻を含む情報から日付のみの情報を得るには?」とします。逆引きの記事はこちらです。
数式
早速、使われている数式を見てみます。一行ずつにコメントがついているので、難しくはないと思いますが、これまで解説した関数の復習も兼ねて一つずつ見てみましょう。一つは「時刻なし」で Formula 1.0 の頃の方法です。
/* 日付プロパティの値を変数 d に代入 */ let(d, prop("日付"), /* d から時間の数値を得て、その時間を減算 */ d.dateSubtract(d.hour(), "hours") /* d から分の数値を得て、その分を減算 */ .dateSubtract(d.minute(), "minutes") )
もう一つは「時刻なし2.0」で、Formula 2.0 で追加された parseDate() を使うものです。
/* 日付プロパティの日付を YYYY-MM-DD の文字列に変換 */ prop("日付").formatDate("YYYY-MM-DD") /* 作成した文字列から日付を作成 */ .parseDate()
サンプルデータは以下のようになっています。時刻なしは 0:00 という時刻情報が残っていますが、parseDate の場合には日付のみの情報になります。
まず、時刻なしの Formula をみてみます。
最初の行は
let
です。日付プロパティを何度も参照するので、d という変数に入れています。上の a の列では「2024年5月10日 19:04」という日付が d に入ります。/* 日付プロパティの値を変数 d に代入 */ let(d, prop("日付"),
次の行は日付の時間の数値を
d.hour()
で取得します。上の例では 19 が返ります。その数値をhours
として d から引き算します。結果として、「2024年5月10日 0:04」という日付が返ります。/* d から時間の数値を得て、その時間を減算 */ d.dateSubtract(d.hour(), "hours")
最後の行は日付の分の数値を
d.minute()
で取得します。上の例では 4 が返ります。その数値をminutes
として d から引き算します。結果として、「2024年5月10日 0:00」という日付が返ります。これが let 、すなわち Formula の返り値になります。/* d から時間の数値を得て、その時間を減算 */ d.dateSubtract(d.hour(), "hours")
もう一つの「時刻なし2.0」も見ていきます。
最初の行は日付プロパティを formatDate で文字列に変換します。フォーマット文字列は
YYYY-MM-DD
となっているため、「2024-05-10」という文字列が作成されます。/* 日付プロパティの日付を YYYY-MM-DD の文字列に変換 */ prop("日付").formatDate("YYYY-MM-DD")
最後の行はこの文字列を日付に変換します。日付の情報しかないので、時刻情報がなくなるわけです。
/* 作成した文字列から日付を作成 */ .parseDate()
おわりに
今回は、「時刻を含む情報から日付のみの情報を得るには?」を解説しました。Formula 2.0 になるまでは、dateSubstract で毎回時間と分を引き算する Formula を多くの人が作っていましたが、今は parseDate で簡単に作成できるようになったので楽になりましたね。