PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Oblicz wiek w latach w PostgreSQL

Postgres ma age() funkcja zwracająca wiek w latach, miesiącach i dniach na podstawie dwóch dat.

Działa to dobrze, chyba że chcesz zwrócić tylko wiek w latach.

Na przykład chcesz po prostu zwrócić wiek osoby na podstawie jej urodzin. Chcesz coś takiego jak 32 zamiast 32 lata 4 mon 67 dni , czyli age() prawdopodobnie wróci.

Na szczęście istnieje prosty sposób na zrobienie tego w PostgreSQL.

Jeśli chcesz tylko wieku w latach, możesz użyć extract() lub date_part() aby uzyskać rok z age() wartość zwracana przez funkcję.

Oto przykład, który używa date_part() funkcja:

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

Wynik:

16.0

Tak to wygląda, gdy uruchamiam go w Azure Data Studio.

Kiedy uruchamiam go w psql , rozumiem:

16

Oba extract() i date_part() zwracają swoje wyniki przy użyciu typu danych podwójnej precyzji.

W razie potrzeby możesz przekonwertować to na liczbę całkowitą (lub inny typ danych), dołączając do niej ::int .

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

Wynik:

16

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przywracanie kopii zapasowych PostgreSQL i TimescaleDB za pomocą ClusterControl CLI

  2. Dlaczego Postgres nie korzysta z indeksu?

  3. Używanie pg_dump do pobierania instrukcji wstawiania tylko z jednej tabeli w bazie danych

  4. użyj polecenia nazwa_bazy_danych w PostgreSQL

  5. Połącz dwie kolumny i dodaj do jednej nowej kolumny