2021/06/28

SalesforceのNOW()とは?日付や時間の概要をご紹介

 
  

Salesforceの日付とは?

Salesforceの日付とは、支払い期限や契約年数、時間、日付を管理する場合に使用します。 日付は、組織の管理において、取引責任者の生年月日、ケースの対応期間、取引先の作成日時などを作成する上で役立ちます。また、時間は営業時間などのクロック時間の追跡にも役立ちます。 日付を操作する場合のデータ型は、「日付データ型」と「日付/時刻データ型」の2つあります。「時間型」は使用しません。日付の操作は、ほとんどの場合、年、月、日を格納できる「日付データ型」が使用されています。 時間の単位は、「日付/時刻データ型」は秒単位で、「時間型」はミリ秒単位となっています。

クロスオブジェクト数式

Salesforceのクロスオブジェクト数式とは、関連するページに日付と時間を表示できる機能です。 クロスオブジェクト数式は、あるオブジェクト内のデータを、別のオブジェクトに表示することができます。以下の例では、取引先オブジェクトのCreatedDateをケースオブジェクトに表示します。
Account.CreatedDate
Salesforceの組織内のメンバーは、項目が存在するオブジェクトへのアクセス権が無かった場合でも、クロスオブジェクト数式を使用すれば、表示したり参照したりすることが可能になります。

日付や時刻の計算

Salesforceの日付データや時刻データは、加算や減算ができます。 日付データ型、日付/時刻データ型、時間データ型は、加算や減算を行うことができ、将来の日付取得や経過時間などを計算することができます。 ある日付データから別の日付データを減算すると、日数差を求めることができます。同じように、2つの日付/時刻データを減算すると、日数差と時間差が求められます。 例えば、日付/時刻データの差分の結果が、「5.52」だった場合、次のように各桁で分けて計算します。「5」=5日、「0.5」=12時間(24時間の0.5)、「0.02」=28分(24時間の0.02)となり、「5.52」は「5日12時間28分」を示します。

時間について

Salesforceの時間データ型は、時間、分、秒、ミリ秒を保持します。 時間、分、秒、ミリ秒は、「HH:MM:SS.MS」で表されます。ミリ秒(MS)の前はピリオド「.」です。また、時間データ型には日付はありません。 2つの時間データ型で減算を行った場合、結果はミリ秒単位で計算され、常に正の数になります。例えば、TimeData1が「10:00 PM」で、TimeData2が「9:00 PM」だった場合、TimeData1 – TimeData2の結果は、「3600000」(ミリ秒)です。 結果は負の数値になることはなく、2つの時間データの差が24時間表示で示されます。

日付を操作するメソッド

Salesforceでは、日付や時間を簡単に操作できるようにいくつかのメソッドが用意されています。 主に次のようなメソッドがあります。 1)DATEは、数値を日付に変換できます。 2)DATEVALUD()は、日付/時刻を日付に変換できます。 3)DATETIMEVALUE()は、日付またはテキスト値から日付/時刻データを返します。 4)TIMEVALUE()は、日付/時刻またはテキスト値から時間データを返します。 5)TODAY()は、現在の日を日付値で返します。 6)NOW()は、現在の日付/時刻値を返します。 7)TIMENOW()は、現在の時刻を返します。

メソッドの使用例

以下にSalesforceの日付メソッドの使用例を説明します。 DATA()メソッドは、数値を日付データに変換することが可能です。以下の例では、数値データを2021年5月17日の日付データに変換しています。
DATE(2021, 05, 17)
次の例では、DATEVALUE()メソッド、DATETIMEVALUE()メソッドを使用して、文字列を日付データに変換しています。
DATEVALUE("2021-05-17")
DATETIMEVALUE("2021-05-17 17:00:00")

SalesforceのNOW()メソッド

SalesforceのNOW()メソッドは、GMTカレンダーに基づいて、現在の日付/時刻値を返します。 GMTカレンダーとは世界標準時のことです。NOW()メソッドは、現在の日付/時刻値をGMTカレンダーに基づいた値で返します。また、NOW()メソッドから返される日付/時刻の形式は、「MM/DD/YY HH:MM PERIOD」となります。 以下は、NOW()メソッドの使い方の例です。
datetime myDateTime = datetime.now();

日数の算出で使用するメソッド

SalesforceのNOW()メソッドや、TODAY()メソッドは、今日から別の日までの日数を算出する場合に使用します。 NOW()メソッドは現時点の日付/時刻データを取得することができ、TODAYは現時点の日付データを取得することができます。

日数の算出例

以下に2つの日付間の日数を算出するサンプルコードを説明します。 差分を算出したい2つの日付を減算すれば、経過日数を取得できます。例えば、取引先のCreatedDateから今日までの経過日数を算出したい場合は、以下のようなコードになります。
TODAY() - DATEVALUE(CreatedDate)
注意点としては、新しい日付から古い日付を減算するようにしてください。もし、数式を逆にし、古い日付から新しい日付を減算してしまうと、負の値が返されます。

SalesforceのNOW()を使いこなそう!

今回は、Salesforceの日付や時間の概要、NOW()メソッドの概要について説明しました。 SalesforceのNOW()メソッドを使用すれば、現在の日付/時刻値を取得することができます。取得した日付/時刻値はGMTカレンダーに基づいた値で、「MM/DD/YY HH:MM PERIOD」の形式になっています。 登録メンバーの年齢を計算したり、契約日数を計算したり、組織内の様々な管理場面で使用します。 ぜひこの機会に理解しておきましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】