AGE( ) 関数

指定された日付を指定された締切日または現在のオペレーティング システムの日付と比較して、経過日数を返します。

構文

AGE(日付/日付時刻/文字列 <,締切日>)

パラメーター

名前 種類 説明
日付/日付時刻/文字列

文字

日付時刻

年齢を調べるフィールド、式、またはリテラル値。
締切日

省略可能

文字

日付時刻

日付/日付時刻/文字列と比較するフィールド、式、またはリテラル値。これを省略した場合は、締切日として、現在のオペレーティング システム日付が使用されます。

メモ

日付/日付時刻/文字列締切日は日付時刻値を受け入れることはできますが、値の時刻部分は無視されます。時刻値だけで AGE( ) を使用することはできません。

出力

数値。

基本的な例

締切日がない

2014 年 12 月 31 日と現在の日付の間の日数を返します。

  • 正の値が返された場合、値は、過去 2014 年 12 月 31 日からこれまでの日数に相当します。
  • 負の値が返された場合、値は、将来 2014 年 12 月 31 日になるまでの日数に相当します。
  • '0' が返された場合、2014 年 12 月 31 日は現在の日付です。
AGE(`20141231`)

期日フィールドの日付と現在の日付の間の日数が返されます。

AGE(期日)

データ型の混在

以下のいずれによっても、指定した 2 つの日付間の日数である 518 が返されます。

AGE(`20130731`,`20141231`)
AGE("20130731","20141231")
AGE(`20130731`,"20141231")
AGE(`20130731 235959`,`20141231`)

締切日とフィールドの使用

期日フィールドの日付と、締切日である 2014 年 12 月 31 日の間の日数が返されます。

  • 締切日より前の日付を指定した場合は、その日付から締切日までの日数に等しい正の値が返されます。
  • 締切日より後の日付を指定した場合は、締切日からその日付が発生するまでの日数に等しい負の値が返されます。
AGE(期日, `20141231`)

2014 年 12 月 31 日と期日フィールドの日付の間の日数が返されます。結果の絶対値はすぐ上の例と同じですが、戻り値の符号(正または負)が逆になります。

AGE(`20141231`, 期日)

フィールド同士の日付の比較

支払日フィールドの日付と、期日フィールドの日付の間の日数が返されます。

  • 期日前の支払日を指定した場合は、期日までの支払いを示す正の値が返されます。
  • 期日後の支払日は、支払遅延を示す負の値を返します。
AGE(支払日, 期日)

支払日フィールドの日付と、期日フィールドの日付の間の日数に猶予期間の 15 日を加算した数値が返されます。

  • 期日前、または期日後 15 日までの支払日を指定した場合は、正の値が返されます。
  • 期日後 15 日を超えている支払日を指定した場合は、猶予期間外の支払遅延を示す負の値が返されます。
AGE(<支払日>, <期日>+15)

高度な例

期限が過ぎた支払いを抽出する

締切日を 2014 年 12 月 31 日として、請求書(Invoice_Date)の経過日数が 180 日を超えている各レコードについて、名前、金額、請求日付を抽出します。

EXTRACT FIELDS Name Amount 請求日 TO "Overdue" IF AGE(請求日,`20141231`) > 180

備考

機能の仕組み

AGE( ) 関数は、2 つの日付間の日数を計算します。

AGE( ) の使用に適する場面

AGE( ) を使用できる場面は、2 つの日付を比較して期日を過ぎた取引先を特定する場合や、残高の経過日数を分析する場合など、2 つの日付の間の経過日数が必要な任意の作業を実行する場合です。

負の戻り値

日付/日付時刻/文字列に指定した値が締切日として指定された日付より後の日付であるか、オペレーティング システム日付(締切日が指定されていない場合)より後の日付である場合は、負数が返されます。

締切日フィールドの使用

締切日のリテラル日付値を必要とする AGE コマンドとは異なり、AGE( ) 関数では締切日フィールドを使用できます。

例:

AGE(支払日, 期日)

このように AGE( ) 関数を使用することは、式で 2 つの日付フィールドを減算して日付間の差を求めることと同等です。

例:

期日 – 支払日

パラメーターの詳細

日付/日付時刻/文字列または締切日に指定された日付時刻フィールドは、フィールド定義で正しく書式を定義してさえいれば、どのような日付書式または日付時刻書式でも使用することができます。

リテラル日付または日付時刻値の指定

日付/日付時刻/文字列または締切日にリテラルの日付値または日付時刻値を指定する場合は、次の表内の書式に制限されます。また、`20141231`"20141231" のように、値を逆引用符、一重引用符、または二重引用符で囲む必要があります。

日付または時刻の個々の要素の間に、スラッシュ(/)やコロン(:)のような区切り文字をいっさい使用しないでください。文字の時刻値ではコロンを使用できます。

  • 日付時刻値 – 以下の表に示す日付、区切り文字、および時刻の書式を任意に組み合わせて使用することができます。日付を時刻の前に置く必要があり、かつ、2 つの間に区切り文字を使用する必要があります。有効な区切り文字は空白スペース 1 つ、あるいは文字 't' または 'T' です。

    形式の例

    リテラル値の例

    YYYYMMDD

    `20141231`

    "20141231"

    YYMMDD

    `141231`

    "141231"

    YYYYMMDD hhmmss

    `20141231 235959`

    "20141231 235959"

    YYMMDDthhmm

    `141231t2359`

    "141231t2359"

    YYYYMMDDThh

    `20141231T23`

    "20141231T23"

    YYYYMMDD hhmmss+/-hhmm

    (UTC オフセット)

    `20141231 235959-0500`

    "20141231 235959-0500"

    YYMMDD hhmm+/-hh

    (UTC オフセット)

    `141231 2359+01`

    "141231 2359+01"

    メモ

    UTC オフセットが設定されているデータのメインの時刻書式で hh を単独で使用しないでください。たとえば、「hh+hhmm」という使い方は避けてください。信頼できない結果になる可能性があります。

     

ACL のスクリプト作成ガイド 14.1