PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Berechnen Sie das Alter in Jahren in PostgreSQL

Postgres hat das age() Funktion, die das Alter in Jahren, Monaten und Tagen basierend auf zwei Daten zurückgibt.

Dies funktioniert gut, es sei denn, Sie möchten nur das Alter in Jahren zurückgeben.

Beispielsweise möchten Sie einfach das Alter einer Person basierend auf ihrem Geburtstag zurückgeben. Sie möchten etwas wie 32 statt 32 Jahre 4 Monate 67 Tage , was age() ist wird wahrscheinlich zurückkehren.

Glücklicherweise gibt es in PostgreSQL eine einfache Möglichkeit, dies zu tun.

Wenn Sie nur das Alter in Jahren wünschen, können Sie entweder extract() verwenden oder date_part() um das Jahr aus dem age() zu erhalten Rückgabewert der Funktion.

Hier ist ein Beispiel, das date_part() verwendet Funktion:

SELECT date_part('year', age(timestamp '2003-12-27'));

Ergebnis:

16.0

So sieht es aus, wenn ich es in Azure Data Studio ausführe.

Wenn ich es in psql ausführe , bekomme ich das:

16

Beide extract() und date_part() geben ihre Ergebnisse unter Verwendung des Datentyps mit doppelter Genauigkeit zurück.

Sie können dies bei Bedarf in eine ganze Zahl (oder einen anderen Datentyp) umwandeln, indem Sie es mit ::int anhängen .

SELECT date_part('year', age(timestamp '2003-12-27'))::int;

Ergebnis:

16