Postgres má age()
funkce, která vrací věk v letech, měsících a dnech na základě dvou dat.
To funguje dobře, pokud nechcete vrátit pouze věk v letech.
Například chcete jednoduše vrátit věk osoby na základě jejích narozenin. Chcete něco jako 32 místo 32 let 4 mon 67 dní , což je age()
se pravděpodobně vrátí.
Naštěstí existuje snadný způsob, jak to udělat v PostgreSQL.
Pokud chcete pouze věk v letech, můžete použít buď extract()
nebo date_part()
získat rok z age()
návratová hodnota funkce.
Zde je příklad, který používá date_part()
funkce:
SELECT date_part('year', age(timestamp '2003-12-27'));
Výsledek:
16.0
Takhle to vypadá, když to spustím v Azure Data Studio.
Když to spustím v psql , chápu toto:
16
Oba extract()
a date_part()
vrátí své výsledky pomocí datového typu s dvojitou přesností.
V případě potřeby můžete toto číslo převést na celé číslo (nebo jiný datový typ) tak, že jej připojíte pomocí ::int
.
SELECT date_part('year', age(timestamp '2003-12-27'))::int;
Výsledek:
16