date_diff()
2 つの日付間の時間差を返します。この関数は、foreach ステートメントでのみ有効です。
構文
date_diff(datepart,startdate,enddate)
datepart には、時間間隔の測定方法を指定します。
- year
- month
- quarter
- day
- week
- hour
- minute
- second
startdate には、開始日を指定します。
enddate には、終了日を指定します。
使用方法
2 つの日付間の時間差を年、月、または日単位で返します。次に例を示します。
date_diff("year", toDate("31-12-2015", "dd-MM-yyyy"), toDate("1-1-2016", "dd-MM-yyyy")) は 1 を返します。
startdate を enddate より後の日付にすると、時間差が負の数値として返されます。date_diff() は、foreach() ステートメントで使用する必要があります。この関数は、group by、order by、filter ステートメントでは使用できません。
返される最長の時間は 9,223,372,036,854,775,807 ナノ秒です。この最長時間は、サポートされているすべての datepart 値で測定できます (ナノ秒はサポートされていません)。たとえば、日数であれば、返される最長の時間は 106,751.99 日 (うるう秒を除く) です。
例 - 各商談を完了するのに何週間要したか?
各商談を完了するのに何週間要したかを計算するには、date_diff() の datepart に week を指定します。
1q = load "DTC_Opportunity";
2q = foreach q generate date_diff("week", toDate(Created_Date_sec_epoch), toDate(Close_Date_sec_epoch) ) as 'Weeks to Close';
3q = order q by 'Weeks to Close';例 - 商談がどのくらい前に完了したか?
date_diff() の datepart に month を指定すると、各商談が完了してから何か月経過したかを計算できます。終了日には now() を使用します。
1q = load "DTC_Opportunity";
2q = foreach q generate date_diff("month", toDate(Close_Date_sec_epoch), now() ) as 'Months Since Close';
3q = order q by 'Months Since Close';