Postgresにはage()
があります 2つの日付に基づいて、年齢を年、月、日で返す関数。
年齢を年単位で返したいだけでない限り、これは問題なく機能します。
たとえば、誕生日に基づいて人の年齢を返したいだけです。 32のようなものが必要です 32年4か月67日の代わりに 、これがage()
戻ってくる可能性があります。
幸い、PostgreSQLでこれを行う簡単な方法があります。
年齢のみが必要な場合は、extract()
のいずれかを使用できます またはdate_part()
age()
から年を取得するには 関数の戻り値。
date_part()
を使用する例を次に示します。 機能:
SELECT date_part('year', age(timestamp '2003-12-27'));
結果:
16.0
AzureDataStudioで実行するとこのように表示されます。
psqlで実行すると 、私はこれを取得します:
16
両方のextract()
およびdate_part()
倍精度データ型を使用して結果を返します。
必要に応じて、::int
を追加することにより、これを整数(または他のデータ型)に変換できます。 。
SELECT date_part('year', age(timestamp '2003-12-27'))::int;
結果:
16