kintoneの関数(DATE_FORMAT)で日付変換時のちょっとしたハマりポイント

日付のイメージ

kintoneの日付フィールドはデフォルトだと「YYYY-MM-DD」形式で表示されますが、この形式以外で日付を表示したい場合があります。そのような際は、kintoneで用意されているDATE_FORMAT関数で日付の書式を変換することが可能です。

しかし、DATE_FORMAT関数を利用して日時の書式変換をする場合、少し注意が必要な点があります。この注意点はヘルプを見るときちんと書いてありますが、普段は意識しないため結構見落としがちです。個人的にハマった部分なので、その内容を以下にてご紹介します。kintone標準機能のみでアプリを作る際の、日付に関する制約事項になるかと思います。

(2021年6月25日更新)
2021年7がつのkintoneアップデートに伴い、DATE_FORMATにて1970年以前の日付も対応可能となりました。
以下記事は2021年6月以前の場合としてご参照ください。

DATA_FORMAT関数で形式変換する際は日付の範囲に注意

日付の書式設定で問題が発生した事例

会員マスタを作っている際に誕生日を日付フィールドで作成したのですが、その後、「誕生月」で集計したいという要望が上がりました。DATE_FORMAT関数で日付の書式を変えて表示するフィールドを追加すれば可能だな、と思いやってみたのですが・・・月が正確に表示される場合と、「#VALUE!」と表示される場合があることに気付きました。きちんと表示されれているものもあるので関数の使い方は間違っていません。原因不明です。改めてデータを見てみると、年齢を重ねている人について月が表示されないということが見て取れました。

DATE_FORMAT関数の使い方が間違っていないとなるとデータが怪しいので、ヘルプページを見てみました。

kintoneのdate_format関数のエラー現象

このように書式変更後の日付が出る場合と出ない場合があり

DATE_FORMAT関数のヘルプページの記載

原因がわからなかったためヘルプページをよく見ると、このように書いてありました。(2018年2月時点)

計算式には、次のフィールドを使用できます。

  • 日時
    日時が協定世界時1970年1月1日 午前0時(日本時刻午前9時)から協定世界時2050年1月1日 午前0時(日本時刻午前9時)までの場合のみ使用できます。
  • 日付
    日付が1970年1月1日から2286年11月20日までの場合のみ使用できます。
  • 時刻
  • 作成日時
  • 更新日時
  • 数値
  • 計算

フィールドは、フィールドコードで指定します。日時に時間を足し引きする場合、計算式には、時間を秒単位で指定します。たとえば、1時間は「3600」、または「60*60*1」のように指定します。1日であれば、「24*60*60*1」のように指定します。
例:日付 + (60 * 60 * 1)

計算式の結果が数値の場合、その数値はUNIX時刻として扱われます。UNIX時刻とは、1970年1月1日午前0時(協定世界時)からの経過秒数のことです。UNIXタイムスタンプとも呼ばれます。日時が2016年4月1日午前0時(協定世界時)の場合、UNIX時刻は「1459468800」です。
数値は、-1より大きく、10,000,000,000未満である必要があります。小数部は切り捨てられます。

はじめ見たときは特に使い方は間違っていないと思っていました。
しかし、よくよく見てみると、日付の範囲には注意が書いてありました。

日付

日付が1970年1月1日から2286年11月20日までの場合のみ使用できます。

これを発見したときは少し戸惑いがありました。なぜ1970年1月1日からと中途半端なのだろう、と・・・。

この仕様のおかげで、DATE_FORMATが自分が想定していた結果が出てこなかったのです。どうにか関数を使って月を算出できないか、誕生日をXX日加算した日付に対してDATE_FORMATで月を出す、ということも行ってみましたが、うるう年などが影響するため正確な値を出すことには断念せざる終えませんでした。

1970年1月1日より前の日付に対して日時書式の変更をする場合は、Javascriptカスタマイズで実現するしか無いという結論となりました。

まとめ

kintoneで用意されている関数を使う場合、ふと想定と違う結果が表示されることがあります。その場合はヘルプページをよく読むと原因が書いてありますので、2、3度読み直してみましょう。

関連記事

  1. 動画

    kintoneの理解を深めるための初心者向け参考動画まとめ

  2. フラットアイコン一覧

    kintoneのアプリアイコンやポータルで使えそうなフラットデザイン系…

  3. 意見交換をする人たち

    kintoneの標準仕様で使える連絡機能 ピープル機能、スレッド機能 …

  4. 検索

    フィールドの数が多いkintoneアプリ内の条件指定を少し簡単にする方…

  5. グラフ、統計のイメージ

    kintoneでグラフ表示する際は集計項目のフィールドの種類に注意しま…

  6. プラグインイメージ

    kintoneの無料・無償で使えるプラグインまとめ