Help using Base SAS procedures

how to read year from a date variable

Reply
Frequent Contributor
Posts: 111

how to read year from a date variable

hi all,

i have the dataset with variables id name joining date and salary

the birthdate is in the format date9.

now i have to read birthday only year i am trying with substr function but not getting the result.

can some one help me.

i tried as

x=substr("join_date"d, length("join_date"d)-3,4);

Is it correct?

Super User
Posts: 7,762

Re: how to read year from a date variable

Posted in reply to Ravikumarkummari

Just use the year() function. If you need it as character, wrap it into put(year(join_date),4.);

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Super User
Posts: 19,770

Re: how to read year from a date variable

Posted in reply to Ravikumarkummari

Is your join date variable a character or number/sas date. If its a number then Kurts solution is correct. If its a char yours is close but need to remove quotes and d from around join_date variable. Its not a good method because what if the date is shorter in some circumstances though.

Super User
Super User
Posts: 7,942

Re: how to read year from a date variable

I agree with Reeza on the character.  If its a date then you would normally have some kind of delimiter between day/month/year.  Easier to check that:

for date_variable="01/JAN/2000"

Year=scan(date_variable,3,"/");

Should set year="2000" as its the third part.

SAS Employee
Posts: 232

Re: how to read year from a date variable

Posted in reply to Ravikumarkummari

Hi there, I'm moving this from the "about Communities on SAS" space to the SAS Procedures space just so that these answers are visible to others in that area. Thanks!

Ask a Question
Discussion stats
  • 4 replies
  • 230 views
  • 0 likes
  • 5 in conversation