見出し画像

kintoneでハマりがちな罠(1)[DATE_FORMAT関数]

※タイトルに(1)とありますが、お察しの通り以降の予定は未定です。
※個人の感想です

今回のまとめ

[DATE_FORMAT関数]を格納するフィールドは文字列フィールドじゃなくて計算フィールドがいいよ
・なぜなら[DATE_FORMAT関数]の結果は数字に見えても文字列扱いだから、結果に+1とかしてもエラーになるからだよ
 例:DATE_FORMAT(日付, "M", "Etc/GMT")+1 は#value!
・計算フィールドのデータは全部数値になるよ(数値と数字の違いは割愛)
・なので計算フィールドをまたげば[DATE_FORMAT関数]の結果を再利用できるよ

そろそろkintone初級者から抜け出せそう

という人って日付の計算とかやりますよね!(断言)
[DATE_FORMAT関数]を使えばx日後の日付とか、元の日付データから月だけ取り出すとか、2つの日付間の日数を算出したりとか、いろいろできます

ですが、[DATE_FORMAT関数]で経過月を計算することは出来ません。※諸説あります
フィールド内では DATE_FORMAT(日付, "M", "Etc/GMT") の結果は文字列扱いだからです。

ちゃんと書いてる

ですので DATE_FORMAT(日付, "M", "Etc/GMT")+1 はエラーになります

はい

そもそも年や月だけ取り出して計算したいときってある?

とも思いましたが、実際ありましたし、年ならYYYY+x年とかあるんかなー、という感じです。なので計算したいときはあります

じゃあどうすればいいの

今回のまとめにもう書いてますが、結果を一度計算フィールドに格納すれば、見た目が数字であれば数値データに変換してくれます。
ヘルプには計算フィールドは「計算結果が数値になる場合」使おう、としか書いてないですが、そういうことです。
なので、文字列(一行)フィールドだとダメです。

期間内から月数を計算したいのですが(開始月は含まない)

こうなりました

今回は以上です。

この記事が気に入ったらサポートをしてみませんか?