目次

Search

  1. はじめに
  2. トランスフォーメーション言語
  3. 定数
  4. 演算子
  5. 変数
  6. 日付
  7. 関数
  8. カスタム関数の作成
  9. カスタム関数APIリファレンス

トランスフォーメーション言語リファレンス

トランスフォーメーション言語リファレンス

DATE_DIFF

DATE_DIFF

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

構文

DATE_DIFF(
date1
,
date2
,
format
)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
date1
必須
Date/Timeデータ型。比較したい1つ目の日付の値を渡します。有効なトランスフォーメーション式を必要に応じて入力できます。
date2
必須
Date/Timeデータ型。比較したい2つ目の日付の値を渡します。有効なトランスフォーメーション式を必要に応じて入力できます。
形式
必須
日付または時間計測の単位を指定するフォーマット文字列。年、月、日、時間、分、または秒が指定できます。'mm'など、日付の中の1つの部分のみを指定できます。フォーマット文字列は一重引用符で囲んでください。フォーマット文字列は大文字と小文字を区別しません。(たとえば、フォーマット文字列'mm'は'MM'、'Mm'、'mM'と同じです。

戻り値

Double値。
date1
date2
より遅い日付である場合には、戻り値は正の数です。
date1
date2
より早い日付である場合には、戻り値は負の数です。
2つの日付が同じである場合は、0です。
一方(または両方)の日付がNULLである場合は、NULLです。

次の式は、DATE_PROMISEDポートとDATE_SHIPPEDポートの日付の差が何時間あるかを返します。
DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'HH' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'HH12' ) DATE_DIFF( DATE_PROMISED, 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_DIFF( DATE_PROMISED, DATE_SHIPPED, 'D' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'DD' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'DDD' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'DY' ) DATE_DIFF( DATE_PROMISED, 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_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MM' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MON' ) DATE_DIFF( DATE_PROMISED, 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_DIFF( DATE_PROMISED, DATE_SHIPPED, 'Y' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'YY' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'YYY' ) DATE_DIFF( DATE_PROMISED, 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_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MM' ) DATE_DIFF( DATE_PROMISED, DATE_SHIPPED, 'MON' ) DATE_DIFF( DATE_PROMISED, 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