はじめに
ファイル名やレイアウト上に日付を載せたい時、 「2023/01/01」といったスラッシュ区切りではなく、 「20230101」と整数8桁に変換して使用したい場面はありませんか。 今回は、FileMakerで日付を8桁の整数で取得する方法を、 Get ( 日付 ) で取得した当日の日付の変換を例に、2つ紹介したいと思います!
日付の形式を変換する
① GetAsNumber関数 + GetAsText関数
GetAsNumber関数はテキストから数字のみを抜き出すことができる関数です。 但し、日付を指定した場合には、0001/1/1からの日数が返ってくるため、 数字をそのまま抜き出すには、GetAsText関数で日付をテキストに修正する必要があります。 従って、当日の 日付(YYYY/MM/DD) を YYYYMMDD形式 で表記する計算式は、 GetAsNumber ( GetAsText ( Get ( 日付 ) ) ) となります。 例) 2023/8/11 に計算した場合 GetAsNumber ( GetAsText ( Get ( 日付 ) ) ) → 20230811
GetAsNumber関数は、指定せずとも全角数字も含む数字全てを半角数字で抜き出してくれるので、 数字の混ざったテキストから数字だけを抜き出す場合には非常に便利です。 例) "本日は2023年08月11日です" → 20230811
ですが、今回のように日付を扱う場合には返される値が変わることと、 文字列に含まれる数字しか抜き出せないことを覚えておく必要があります。 例) "本日は2023年8月11日です" → 2023811 ※7桁になってしまう
② Filter関数
Filter関数はテキストから指定した文字だけを抜き出すことができる関数です。 つまり抜き出す文字に数字を指定することで、数字だけを抜き出すことができます。 従って、当日の日付をYYYYMMDD形式で表記する計算式は、 Filter ( Get ( 日付 ) ; "0123456789" ) となります。 例) 2023/08/11 に計算した場合 Filter ( Get ( 日付 ) ; "0123456789" ) → 20230811
Filter関数のメリットは、 ハイフンや一部の記号も一緒に抜き出したいといった場合に、 フィルタするテキストに文字を追加するだけで、自由に文字を抜き出せることです。
例) "日付:2023-08-11" → 2023-08-11 ※ハイフン入りで抜き出せる
ですが、大文字と小文字、全角と半角を区別する為、 全角の数字が含まれる場合には全角の0~9も指定する必要があります。 例) "日付:2023-08-11" → 2023-08-11 ※全角は全角のままになる
さいごに
FileMaker にはたくさんの関数が用意されていますので、 日付の変換一つを取っても、どういった値からどの形式の結果を求めたいかによって、 最適なアプローチを選択する必要があります。 今回ご紹介した方法以外にも様々な日付の様式に合わせた変換方法がありますので、 より良い方法を発見しましたらまたご紹介したいと思います♪
【参考サイト】 Clarisの公式リファレンス GetAsNumber関数 https://help.claris.com/ja/pro-help/content/getasnumber.html Clarisの公式リファレンス Filter関数 https://help.claris.com/ja/pro-help/content/filter.html