sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLで年齢を年単位で計算する

    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

    1. MSSQLServerでのDBAの一般的な間違い

    2. SQLServerでVARCHAR/CHARの代わりにNVARCHAR/NCHARを使用する必要があるのはいつですか?

    3. MySQL外部キー制約、カスケード削除

    4. PostgreSQLレプリケーションのベストプラクティス-パート1