sql >> Databasteknik >  >> RDS >> PostgreSQL

Beräkna åldern i år i PostgreSQL

Postgres har age() funktion som returnerar åldern i år, månader och dagar baserat på två datum.

Detta fungerar bra om du inte bara vill återställa åldern i år.

Till exempel vill du helt enkelt returnera en persons ålder baserat på deras födelsedag. Du vill ha något som 32 istället för 32 år 4 månader 67 dagar , vilket är vad age() kommer sannolikt tillbaka.

Lyckligtvis finns det ett enkelt sätt att göra detta i PostgreSQL.

Om du bara vill ha åldern i år kan du använda antingen extract() eller date_part() för att få året från age() funktions returvärde.

Här är ett exempel som använder date_part() funktion:

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

Resultat:

16.0

Det är så det ser ut när jag kör det i Azure Data Studio.

När jag kör det i psql , jag får det här:

16

Båda extract() och date_part() returnera sina resultat med hjälp av datatypen dubbel precision.

Du kan konvertera detta till ett heltal (eller annan datatyp) om det behövs, genom att lägga till det med ::int .

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

Resultat:

16

  1. Del 2 – Hur man organiserar ett stort databasdiagram

  2. 7 sätt att hitta dubbletter av rader i PostgreSQL medan du ignorerar den primära nyckeln

  3. Ta bort en databaspostprofil i SQL Server (T-SQL)

  4. Hur får jag kolumndatatyp i Oracle med PL-SQL med låga privilegier?