初心者がタイムスタンプについて勉強したことをまとめました

FileMakerでフィールドの設定をしている時に見る「タイムスタンプ」型。
うっすらイメージはできますが、「日付」型や「時刻」型との違いは何?どういう用途で使うの?など知らないことが多かったので「群馬 FileMaker 勉強会 #5」を機会に勉強しました。

日付型や時刻型で頑張っていた機能をタイムスタンプでスマートに実現できるかもしれませんよ!

タイムスタンプフィールド

タイムスタンプフィールド
タイムスタンプフィールドとは

  • 暦の特定の日時を参照することができる日付と時刻
  • 必ず日付と時刻が含まれる
  • タイムスタンプに対する計算処理では、時刻フィールドに対する計算と同様に秒単位で計算される

といった特徴があります。日付と時刻が含まれた秒単位のフィールドというのがポイントです。

タイムスタンプの書式設定

タイムスタンプの書式設定
タイムスタンプの書式設定は、3つの構成要素を個別に設定することによって行います。

  • 日付 -[インスペクタ]の[日付]領域 (例:15/11/26 2025年11月26日)
  • 時刻 -[インスペクタ]の[時刻]領域 (例:15:35:39 午後3時25分)
  • 秒 -[インスペクタ]の[数字]領域  (小数点以下の桁数を設定することができます)

関数のTimestamp

関数のTimestamp
Timestamp関数は西暦上の日付と時刻が含まれるタイムスタンプを返します。

引数

  • 日付-西暦上の日付または日付フィールド
  • 時刻-時刻の値または時刻フィールド

戻り値のデータタイプ

  • タイムスタンプ

Timestamp関数の使用例

「Timestamp(Date(26;11;2015);Time(9;19;45))」は「2015/11/26 9:19:45 AM」を返します。

タイムスタンプから日付や時刻を取得

タイムスタンプから取得
タイムスタンプフィールドから日付を取得するときは「GetAsDate」、時刻を取得するときは「GetAsTime」を使います。

タイムスタンプから取得する方法

「日時[タイムスタンプ型]」フィールドの日付、時刻をそれぞれ取得する場合は

  • 日付-「GetAsDate(日時)」で「日時」フィールドの日付を返します
  • 時刻-「GetAsTime(日時)」で「日時」フィールドの時刻を返します

タイムスタンプのメリット

タイムスタンプのメリット
タイムスタンプフィールドは、日をまたいだ時間の計算が楽であるというメリットがあります。

例えば、「日時A」と「日時B」の間の時間を計算するとします。

日付フィールドを時刻フィールドを使うとなると、
「日付A-日付B」と「時刻A-時刻B」を計算することになります。
しかし、「日時A」と「日時B」が日をまたいでいる場合、時刻の計算をそのまますると、正しい時間を求めることができません。

そこで、タイムスタンプフィールドを活用すると、
「タイムスタンプA-タイムスタンプB」をそのまま計算することで、正しく時間を求めることができます。
これはタイムスタンプが、日付と時刻が含まれた秒単位のフィールドであるためそのまま計算することができるのです。

タイムスタンプフィールドの主な活用法

勉強会の時は、ここで発表が終わったのですが、その後の質疑応答でタイムスタンプの活用法を教わったので、まとめに追加します。
タイムスタンプフィールドには、このようなオプションがあります。
タイムスタンプのオプション
こちらの「作成情報」と「修正情報」にチェックを入れると以下のようなデータを自動的に入力します。

  • 作成情報-レコードの作成日と作成時刻
  • 修正情報-レコードの修正日と修正時刻

よって、タイムスタンプフィールドを2つ用意して、それぞれ「作成日時」と「修正日時」として設定すれば、レコードの作成日時や更新日時を管理することができます。

以上、タイムスタンプのまとめでした。
ありがとうございました