Hitachi

Hitachi Advanced Data Binder SQLリファレンス


8.9.5 GETAGE

生年月日と基準日から満年齢を求めます。

〈この項の構成〉

(1) 指定形式

スカラ関数GETAGE::=GETAGE(生年月日,基準日)
 
  生年月日::=値式
  基準日::=値式

(2) 指定形式の説明

生年月日

生年月日を指定します。

指定規則を次に示します。

  • 生年月日は,値式の形式で指定します。値式については,「7.20 値式」を参照してください。

  • 生年月日のデータ型は,DATE型,TIMESTAMP型,CHAR型,またはVARCHAR型のどれかにしてください。ただし,CHAR型またはVARCHAR型の場合は,日付を表す既定の入力表現,または時刻印を表す既定の入力表現の形式に従っている文字列定数だけを指定できます。既定の入力表現については,「6.3.3 既定の文字列表現」を参照してください。

  • 生年月日に?パラメタを単独で指定した場合,?パラメタに仮定されるデータ型はDATE型になります。

基準日

満年齢を求める基準日を指定します。

指定規則を次に示します。

  • 基準日は,値式の形式で指定します。値式については,「7.20 値式」を参照してください。

  • 基準日のデータ型は,DATE型,TIMESTAMP型,CHAR型,またはVARCHAR型のどれかにしてください。ただし,CHAR型またはVARCHAR型の場合は,日付を表す既定の入力表現,または時刻印を表す既定の入力表現の形式に従っている文字列定数だけを指定できます。既定の入力表現については,「6.3.3 既定の文字列表現」を参照してください。

  • 基準日に?パラメタを単独で指定した場合,?パラメタに仮定されるデータ型はDATE型になります。

スカラ関数GETAGEの実行結果の例を次に示します。

(例)

生年月日が1986年1月15日の人の,2014年9月30日時点の満年齢を求めます。

GETAGE(DATE'1986-01-15',DATE'2014-09-30') → 28

(3) 規則

  1. 実行結果のデータ型はINTEGER型になります。

  2. 実行結果の値は,非ナル値制約なし(ナル値を許す)となります。

  3. 生年月日または基準日がナル値の場合,実行結果はナル値になります。

  4. 基準日生年月日よりも前の日時の場合,実行結果は0になります。

  5. スカラ関数GETAGEは,基準日時点での満年齢を返します。生年月日の1年後の同じ日に満1歳と数えます。なお,生年月日が2月29日の場合,うるう年以外の年は3月1日を生年月日と仮定します。

(4) 例題

例題

社員表(EMPLIST)から,2015年1月1日時点の満年齢が30歳以上の社員数を求めます。BIRTH列には,社員の生年月日が格納されています。

SELECT COUNT(*) FROM "EMPLIST"
    WHERE GETAGE("BIRTH",DATE'2015-01-01')>=30

[図データ]