【FileMaker】「タイムスタンプ関数」で日付と時刻が取得できない

category: filemaker

filemakerの忘備録・小ネタです。開発しながら気が付いたことを書いています。

  • 疑問
    「タイムスタンプ関数」でタイムスタンプのデータをつくることができるのに、日付と時刻が取れないのはなぜ?
  • 回答
    「テキスト関数」のGetAsDateとGetAsTimeを使えば取れるから

解説
————————————————————–
Get ( タイムスタンプ )
システムクロックに「2014 年1月1 日 11:30:00」と表示されている場合、「2014/1/1 11:30:00」を返します。
————————————————————–

タイムスタンプは日付と時刻を同時に取得できるので便利です。
でも悩みがありました

————————————————————–
「タイムスタンプから日付と時刻を取り出す関数がない」
————————————————————–

Day(日付)、Month(日付)、Year ( 日付 )、Hour ( 時刻 )、Minute ( 時刻 )
はあるけど
Date ( タイムスタンプ )、Time ( タイムスタンプ )
がないと思っていましたが下記の関数使えば解決できました

————————————————————–
GetAsDate ( テキスト )
テキストに含まれる日付を日付フィールドタイプに変換して、日付または日付関数を使用する計算式で使用できるようにします。
GetAsTime ( テキスト )
指定したテキスト内の時刻またはタイムスタンプを時刻フィールドタイプとして返します。 時刻またはタイムスタンプ関数を使用する式で使用します。
————————————————————–

でも、うまくいかない時がありました。
FileMaker形式のタイムスタンプではなく、外部データから取得したタイムスタンプの形式が異なることがあります。

————————————————————–
「2014-1-1 11:30:00」の形式のタイムスタンプで取れない
————————————————————–

そんな時は下記で解決してください

————————————————————–
GetAsDate ( Substitute ( テキスト ; “-” ; “/” ) )
————————————————————–

私はこんなことで半年悩んでいました<(_ _)>