I received a dataset in which many of the observations have a datetime value where the year is 2076 or 2077. Obviously these values are off by 60 years. So how can I modify the year value in that datetime variable so that the right year is in there.
ex. DOB = 02/15/2076 13:00 should be 02/15/2016 13:00
DOB = 05/26/2077 9:35 should be 05/26/2017 9:35
Thanks!
Andrew
Use INTNX.
That does not work. When I try newdob = intnx("year", dob, -60) all I get is 1/1/1960. Plus, I need the time portion to remain stable.
You stated you had a datetime variable? If so, then Year is not the correct interval, it's DTYEAR I think. For the remaining values to be the same use the fourth parameter which controls the alignment.
newdob = intnx("dtyear", dob, -60, 's')
@DocMartin wrote:
That does not work. When I try newdob = intnx("year", dob, -60) all I get is 1/1/1960. Plus, I need the time portion to remain stable.
You have a datetime value, not a date value.
Use
intnx("dtyear",dob,-60)
Did you import this data from Excel originally?
@DocMartin wrote:
Yes, unfortunately.
Assuming this means you did import it from Excel, then I would suggest an approach noted here:
Or
There's a specific value that you need to use to account for Excel date to SAS date but I can't remember the rule, if you're sure it's 60 years this appraoch will work though.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.