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