sql >> Databáze >  >> RDS >> PostgreSQL

Vypočítejte věk v letech v PostgreSQL

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

  1. Obnova instance mySQL z jiného uživatelského účtu (macOS)

  2. Jak vrátit všechna nedůvěryhodná omezení CHECK v SQL Server (příklad T-SQL)

  3. Jak ukládat historické záznamy do tabulky historie na SQL Server

  4. Povolit protokolování pomalých dotazů (Slow Query Log) v databázi MySQL