【コピペで使える!kintone 】自動計算:日付関連の計算式サンプル集
日付関連の計算式サンプル
kintoneアプリの自動計算機能で、日付を扱う時に必要となるDATE_FORMAT関数のよくある利用例サンプルです。
最初はとっつきにくいため、サンプルの計算式をコピー&修正して、自分のやりたいことに合うように設定してみてください。
日付の表記については、サンプルに挙げた以外にもさまざまな設定ができるようになっています。詳しくはkintoneのヘルプページを参照してみてください。
参考:kintone ヘルプ:日時の形式やタイムゾーンを変える(DATE_FORMAT関数)
★今回紹介した自動計算設定を登録したkintoneアプリのテンプレートをダウンロードできるようにしました。このアプリテンプレートからアプリを作成して、自分でカスタマイズしながらいろいろと試してみるのもいいと思います。
アプリテンプレートのダウンロードなぜDATE_FORMAT関数を使うのか
自動計算の計算式に日付フィールドを直接設定した場合、意味の分からない数字の羅列になってしまいます(下図)。
これは、kintoneのシステムの内部では、日付データは「UNIX時刻」というデータ形式で取り扱われています。UNIX時刻というのは、コンピューターの内部で日時データを取り扱うために決められたルールで、1970年1月1日午前0時(協定世界時)からの経過秒数のことです。
下の図にもあるように、計算式の中で日付や日時を取り扱う場合は、DATE_FORMAT関数という書き方をしてあげると、わたしたちがいつも使っている日時や日付の形式に変換することができます。DATE_FORMAT関数は、コンピューターが理解できる言語から、人間が理解できる言語へ翻訳するための関数ということになります。
日付フォーマット計算式サンプル
※計算で用いる日付フィールドのフィールドコードは「日付」としています。
表記 | 例 | 計算式 |
年 | 2019 | DATE_FORMAT(日付, “YYYY”, “Asia/Tokyo”) |
月(MM) | 01 | DATE_FORMAT(日付, “MM”, “Asia/Tokyo”) |
月(M) | 1 | DATE_FORMAT(日付, “M”, “Asia/Tokyo”) |
日(dd) | 08 | DATE_FORMAT(日付, “dd”, “Asia/Tokyo”) |
日(d) | 8 | DATE_FORMAT(日付, “d”, “Asia/Tokyo”) |
年/月/日 | 2019/01/08 | DATE_FORMAT(日付, “YYYY/MM/dd”, “Asia/Tokyo”) |
年月日 | 2019年01月08日 | DATE_FORMAT(日付, “YYYY年MM月dd日”, “Asia/Tokyo”) |
MM/dd | 01/08 | DATE_FORMAT(日付, “MM/dd”, “Asia/Tokyo”) |
M/d | 1/8 | DATE_FORMAT(日付, “M/d”, “Asia/Tokyo”) |
▼kintoneのアプリ例:
日付を含む文字列の結合計算式サンプル
文字列の結合は、他のフィールドのデータの場合はフィールドコードを記載、計算式の中にも直接文字列を記載することもできます。ダブルクオーテーションで囲んで表記します。それぞれの間は、「&」で結合します。&の前後に半角スペースを入れてもOKです。
表記 | 計算式 |
誕生日はM月d日です | “誕生日は” & DATE_FORMAT(日付, “M月d日”, “Asia/Tokyo”) & “です” |
日付の計算サンプル
自動計算機能の中で日付に関する計算を行うことができます。ここでは日付に対して時間を足し引きする方法を紹介します。先ほど、kintoneのシステム内部では、日時や日付データはUNIX時刻、すなわち秒の単位で取り扱われている話をしました。よって、ある日付や日時に足し引きする場合も、その時間を秒単位で指定する必要があります。
1時間は60秒×60分ですから3600秒。1日であれば24時間ですから「60*60*24」のように記載すると分かりやすいですね。30日後であれば「60*60*24*30」ですね。
表記 | 計算式 |
1日後(YYYY/MM/dd) | DATE_FORMAT(日付2 + 24*60*60*1, “YYYY/MM/dd”, “Asia/Tokyo”) |
日付計算の注意点
ここで紹介した日付の計算は、ある日付から一定時間(一定秒)前/後を計算する、というやり方です。
注意しておく必要があるところは、例えば「31日後」というのと「1ヶ月後」というのは厳密には違う、ということです。同様に「365日」=「1年」ではないですね。月によって日数は違いますし、うるう年のある日は366日ですから、単純に●月後や●年後を計算することは、kintone標準機能の自動計算では厳密にはできない、ということになります。
自動計算で10年後の同じ日を計算したり、来年の誕生日を計算することは難しいですね。
計算で求めた先の日付に対してリマインダーの通知を設定するケースもよくあるかと思います。
次回〇〇時のリマインダーや、資格や教育の更新時期等々。
こういうケースでは現状、kintoneの標準機能では難しいので、JavaScriptカスタマイズが必要になってきます。それほど難しいカスタマイズではありませんが、自力で作成できない人のためにプラグインも用意してありますので、ご活用ください。
動画コンテンツのご案内
DATE_FORMAT関数を含めた、kintoneの関数の活用法を動画で詳しく説明しています。動画で実際のアプリを見ることで、活用シーンをイメージすることができます。
kintone導入・活用のご相談はこちら!
◇ kintone導入がなかなか進まない
◇ アプリが思ったような動きをしてくれない・・・
◇ カスタマイズやプラグインをどう選んだらいいの??
◇ 業務改善の進め方がよくわからない
サイボウズ公認 kintone エバンジェリストの 松田正太郎があなたの相談相手になります。
保有しているkintone認定資格:
・kintone認定アソシエイト(2017)
・kintone認定アプリデザインスペシャリスト(2017)
・kintone認定カスタマイズスペシャリスト(2020)
★業務改善アドバイス、kintone構築支援
★連携サービス・プラグイン選定支援、カスタマイズ
★詳細ヒアリングの上、御社に最適なプランを提案します
★初回打合せ(2時間程度)は無料。まずはお問い合わせください!(WebミーティングOK)