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