PostgreSQL age Kullanımı

PostgreSQL'de age() fonksiyonu, iki timestamp veya tarih değişkenine dayalı olarak aralarındaki farkı döndürür. Bu, farkın büyüklüğüne göre yıl, ay, gün veya ay, gün veya gün şeklinde olabilir.

İki şeklide kullanımı vardır..

  • age(timestamp) veya age(timestamp, timestamp)

İlki, geçerli tarihe göre yaşı döndürür. Özellikle, current_date()'den (gece yarısı) çıkarır. İkinci kullanım ise, ikinci tarihin birinci tarihten çıkarılmasına şeklinde olur.

İlk kullanıma göre bir örnek yapalım...

SELECT 	age(timestamp '2021-02-06');
-- Sonuç : "2 years 3 mons 4 days" şeklinde döner. (sorgunun çalıştırıldığı tarihe göre)

İkinci örneğimizde ise iki tarihin farkını döndürelim...

SELECT age(timestamp '2021-01-01', timestamp '2020-03-14');
-- Sonuç : 9 mons 18 days şeklinde döner

Eğer farkı sadece bir zaman tipi olarak istiyorsanız, extract() ya da date_part() kullanabilirsiniz. Aşağıda yıl olarak döndüren örnek kullanıma bakalım..

SELECT extract(year from age(timestamp '2003-10-25'));
-- Sonuç : 20.0 dönecektir. (sorgunun çalıştırıldığı tarihe göre)

extract() ve date_part() double tipinde değer döndürür. ::int kullanarak bunu tamsayıya çevirebilirsiniz. Aşağıda örnek kullanım gösterilmiştir.

SELECT extract(year from age(timestamp '2003-10-25'))::int;
-- Sonuç : 20 dönecektir. (sorgunun çalıştırıldığı tarihe göre)



İlginizi Çekebilir

PostgreSQL CURRENT_ROLE Kullanımı

PostgreSQL MIN Kullanımı

PostgreSQL LENGTH Kullanımı

PostgreSQL Tablonun Kolon Adını Sorgu İle Değiştirmek

PostgreSQL REPLACE Kullanımı