誕生日から年齢を計算する【PostgreSQL】

PostgreSQL構文

概要

誕生日から年齢を計算するにはage関数を使用します。

結果は次の例のようにinterval値(XX years XX mons XX days)という値になります。

--誕生日から年齢を計算する
age( 誕生日の日付 ) 

-- 実行例
select age(timestamp '1980-01-01');  -- 41 years 1 day
select age(timestamp '1990-04-01');  -- 30 years 9 mons 1 day
select age(timestamp '1997-07-07');  -- 23 years 5 mons 26 days

 

 

実行例(呼び出し例)

上のままでは少々使いづらいので、年、月、日付だけ取得する例です。

--誕生日から年(何歳か)を取得
select date_part('year', age(timestamp '1980-01-01'));  -- 41
select date_part('year', age(timestamp '1997-07-07'));  -- 23

--誕生日から月(何ヶ月か)を取得
select date_part('month', age(timestamp '1980-01-01'));  -- 0
select date_part('month', age(timestamp '1997-07-07'));  -- 5

--誕生日か日(何日か)を取得
select date_part('day', age(timestamp '1980-01-01'));    -- 1
select date_part('day', age(timestamp '1997-07-07'));    -- 26