PostgreSQL 生年月日から年齢を取得する

PostgreSQL 生年月日から年齢を取得する

PostgreSQLで、生年月日から年齢を取得する手順を記述してます。「age」に生年月日を指定することで可能です。日付を指定してそこから計算して年齢を取得することもできます。

環境

  • OS CentOS Stream release 9
  • PostgreSQL 15.1
  • pgadmin4 6.16

手順

生年月日から年齢を取得するには、「age」を使用します。

age(日付);

実際に、取得してみます。

SELECT 
	age(timestamp '2000-01-01'),
	age(timestamp '2000-02-01'),
	age(timestamp '2001-01-01');

実行結果を見ると、取得されていることが確認できます。

日付を指定して計算

現在日付ではなく特定の日付を指定して計算することもできます。

SELECT
  age('2025-01-01', '2000-01-01'),
  age('2025-02-01', '2000-01-01');

実行結果

過去の日付を指定すると「マイナス」で計算されます。

SELECT
  age('1999-01-01', '2000-01-01');

実行結果

nullを指定

「null」を指定するとエラーとなります。

SELECT
  age(null);

ERROR:  関数 age(unknown) は一意ではありません
LINE 2:   age(null);
          ^
HINT:  最善の候補関数を選択できませんでした。明示的な型キャストが必要かもしれません
SQL 状態: 42725
文字: 10

実行結果