user6084122
user6084122

Reputation:

How to get only year from age() function in postgresql select query

The following query returns:

SELECT AGE(cast(dob AS date)) 
FROM mas_patient_details;

age
----------
39 years 5 mons 19 days
13 years 2 days
69 years 2 days
41 years 11 mons 25 days

AND this query returns:

SELECT age(cast(dob as date)) 
FROM mas_patient_details 
WHERE age <= 59;

age
----------
39 years 5 mons 19 days
13 years 2 days
69 years 2 days
41 years 11 mons 25 

How would one extract simply the year from one of these queries?

Upvotes: 24

Views: 35590

Answers (1)

anon
anon

Reputation:

If column fu is of data type DATE, you could use

SELECT EXTRACT(YEAR FROM fu) FROM mydate;

and if it is varchar, you convert it to date using to_date()

SELECT EXTRACT(YEAR FROM to_date(fu, <your pattern>)) FROM mydate;

In your case:

select EXTRACT(YEAR FROM age(cast(dob as date))) 
from mas_patient_details 
where age <= 59;

Upvotes: 38

Related Questions