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.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.