PostgreSQL では、AGE() 関数を使用して誕生日から年齢を計算できます。この関数は、現在の日付と指定された日付 (誕生日) の間の間隔を返します。方法を見てみましょう

  • AGE() 関数を使用して、PostgreSQL で誕生日から年齢を取得します。

構文:

AGE(timestamp, timestamp)

timestamp: 年齢を計算する日付またはタイムスタンプ。

AGE() 関数を使用する場合、現在の日付 (通常は CURRENT_DATE または NOW()) と誕生日を指定して年齢を取得できます。

例 1: PostgreSQL で固定日付から年齢を計算する

特定の誕生日(例:1990-03-01)から年齢を計算するには、次のようにします。

SELECT AGE('2024-06-28', '1990-03-01') AS age;

出力:

PostgreSQL で誕生日から年齢を取得する – AGE() 1

例2: 現在の年齢から年齢を計算するPostgreSQL の日付

現在の日付から年齢を計算するには:

SELECT AGE(CURRENT_DATE, '1990-03-01') AS age;

出力:

PostgreSQL で誕生日から年齢を取得する – AGE() 2

例 3: PostgreSQL テーブルの各行の年齢を計算する

学生の誕生日を含む列 birthdaytime を持つテーブル Student_details があるとします。

PostgreSQL で誕生日から年齢を取得する – AGE() 3

各生徒の年齢を計算するには、AGE()関数を使用すると、年齢を年、月、日で表示できます。

select *,age(CURRENT_DATE,date(birthdaytime)) as age from student_detail

出力:

PostgreSQL で誕生日から年齢を取得する – AGE() 4

例4: 年齢のみを抽出する

年齢のみを抽出したい場合は、まず AGE() 関数を使用して、年齢を年、月、日で取得し、次に DATE_PART() 関数を使用してそこから年のみを抽出します。

SELECT *, DATE_PART('year', AGE(CURRENT_DATE, birthdaytime)) AS age_years FROM student_detail;

出力:

PostgreSQL で誕生日から年齢を取得する – AGE() 5