目次

Search

  1. はじめに
  2. タスクフローとリニアタスクフロー
  3. タスクフロー
  4. リニアタスクフロー

タスクフロー

タスクフロー

dateDiff

dateDiff

2つの日付の間の時間の長さを返します。形式は、年、月、日、時間、分、秒、ミリ秒、またはマイクロ秒に指定できます。dateDiff関数は、最初の日付から2番目の日付を減算し、差を返します。
dateDiff関数は、日数ではなく月数に基づいて値を計算します。各月の選択された日で、1カ月に満たない月の日付の差を計算します。1ヶ月に満たない月の日付の差を計算するために、dateDiffは月内の日を加算します。次に、選択された月の全日数でその値を除算します。
dateDiff関数は、うるう年とうるう年以外の年では同じ期間で異なる値を算出します。違いが発生するのは、dateDiff関数に2月が含まれる場合です。dateDiff関数は、うるう年の2月は29日間で除算し、うるう年以外の年である場合は28日間で除算します。
例えば、9月13日から2月19日までの月数を計算するとします。うるう年の場合、dateDiff関数は2月を19/29ヶ月、つまり0.655ヶ月と計算します。うるう年以外の年の場合、dateDiff関数は2月を19/28ヶ月、つまり0.678ヶ月と計算します。dateDiff関数は、残りの月の日の差を同様に計算し、dateDiff関数が指定された期間における合計値を返します。
日付の差を計算するのに異なるアルゴリズムを使用するデータベースもあります。

構文

date:dateDiff(xs:dateTime('date'), xs:dateTime('date'), 'format')
xs:dateTime句を手動で追加し、日付値を一重引用符で囲む必要があります。
次の表に、引数を示します。
引数
必須/オプション
説明
日付
必須
Date/Timeデータ型。比較を行う1つ目の日付の値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
日付
必須
Date/Timeデータ型。比較を行う2つ目の日付の値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
format
必須
日付または時間計測の単位を指定するフォーマット文字列。年、月、日、時間、分、秒、ミリ秒、またはマイクロ秒を指定できます。'mm'など、日付の中の1つの部分のみを指定できます。フォーマット文字列は一重引用符で囲んでください。フォーマット文字列は大文字と小文字を区別しません。(例えば、フォーマット文字列'mm'は'MM'、'Mm'、'mM'と同じです。

戻り値

Double値。最初の日付が2番目の日付より後の場合、戻り値は正の数になります。最初の日付が2番目の日付より前の場合、戻り値は負の数になります。
2つの日付が同じである場合は、ゼロです。
一方(または両方)の日付がNULLである場合は、NULLです。

次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差が何時間あるかを返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'HH') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'HH12') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'HH24')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-2100
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
2100
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
6812.89166666667
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-8784
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を日数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'D') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DD') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DDD') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DY') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DAY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-87.5
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
87.5
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
283.870486111111
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-366
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を月数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MM') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MON') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MONTH')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-2.91935483870968
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
2.91935483870968
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
9.3290162037037
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-12
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を年数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'Y') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'YY') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'YYY') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'YYYY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-0.24327956989247
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
0.24327956989247
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
0.77741801697531
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-1
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を月数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MM') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MON') date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MONTH')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
LEAP YEAR VALUE (in Months)
NON-LEAP YEAR VALUE (in Months)
Sept 13
Feb 19
-5.237931034
-5.260714286
NULL
Feb 19
NULL
N/A
Sept 13
NULL
NULL
N/A