この記事の目次
SalesforceにおけるDateDaffとは?

SalesforceにおけるDateDiffの概要

DateDiffの2種類の構文
date_diff(datepart,date1,date2)
datepartでは、時間を測定するときの間隔を決めます。SalesforceでDateDiffのdatepartの決められる間隔の例は、year、month、quarter、day、week、hour、minute、secondなどがあります。
年単位や月単位、日にちの単位、週単位、時間、分、秒などいろんな期間で計算が可能です。単位が多いのでさまざまな場面で活用が可能です。
date1は、比較をするための最初の日付を表します。日付を出力するためにDateDiff以外の他の関数を呼び出すこともある部分です。date2は、比較するための期間の終了日です。日付を出力する際に必要なDateDiff以外の関数も使用できます。
また、DateDiffには以下の構文があります。
DateDiff(date1, date2, string)
date1は比較の最初の日付であり、出力のためにDateDiff以外の関数を使用できます。Date2は終了日の日付で、出力に別関数の使用が可能です。date1もdate2もMM/dd/yyyyやYYYY-MM-DD形式を使うことができます。
stringは期間の測定の間隔を指定できます。使うことのできる値は、yearの「Y」、monthの「M」、dayの「D」、hourの「H」、minuteの「M」です。「Q」は日付が属する四半期の差になります。
DateDiffは、基本的には比べたい2つの日付とyyyyやmm、ddなど年単位、月単位、日、時間など期間の測定の間隔を使います。用意する日付は、開始日と終了日になるので構文に当てはめて使用するといいでしょう。
DateDiffの使用例
Salesforceで使用するDateDiff関数の使用例について紹介します。Salesforceでそれぞれの商談に何週間かかったか、商談をどのくらい前に完了させたのかという例です。date_diff(datepart,date1,date2)の構文で説明します。 まずは、date_diff(datepart,date1,date2)の基本的な書き方のサンプルコードです。date_diff(""year"", toDate(""31-12-2015"", ""dd-MM-yyyy""), toDate(""1-1-2016"", ""dd-MM-yyyy""))
日付-月-年の書き方で2つの日付が何年差があるのかを求めます。基本的にDateDiffは数字の引き算に近いです。日付の引き算だということを考えて、以下の例を見て考えてみましょう。MM/dd/yyyyの書き方でも同じ結果が出ます。以下サンプルコードです。
date_diff(""year"", toDate(""12-31-2015"", ""MM/dd/yyyy""), toDate(""1-1-2016"", ""MM/dd/yyyy""))
「Salesforceでそれぞれの商談に何週間かかったか」の使用例から説明します。それぞれの商談の計算に最初にweekを使用して、時間を測定する間隔を決めましょう。以下、サンプルコードになります。
q = load ""DTC_Opportunity"";
q = foreach q generate date_diff(""week"", toDate(Created_Date_sec_epoch), toDate(Close_Date_sec_epoch) ) as 'Weeks to Close';
q = order q by 'Weeks to Close';
次に商談をどのくらい前に完了させたのかという例を紹介します。それぞれの商談に何ヶ月間かかったのか、時間を測定する間隔をmonthで指定し計算するのです。date2にあたる終了日にはnow()を使用して現在の日付を表しましょう。以下、サンプルコードになります。
q = load ""DTC_Opportunity"";
q = foreach q generate date_diff(""month"", toDate(Close_Date_sec_epoch), now() ) as 'Months Since Close';
q = order q by 'Months Since Close';
DateDiff(date1, date2, string)を使用した例も紹介します。2つの日付の差を求めるサンプルコードになります。日付はあらかじめ用意するサンプルコードです。
dateDiff(01/01/18, 03/05/18, ""MM"")
01/01/18は1月1日18時を表し、03/05/18は、3月5日18時という意味です。MMは日付の月の部分になります。よって、2つの日付の差が2になります。
SalesforceにおけるDateDiffの注意点

SalesforceのDateDiffを活用しよう

この記事の監修者・著者

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