Hello,
I want to create a new value datetime derived from existing values. Existing values are formatted as follows: Date, date9. (24MAY2016) and Time, time8. (9:10:07)
Result I am looking get may be as follows: 24MAY2016:09:10:07. What is important is that I am able to compare this column datetime against itself, using < > functions.
I found the following code online, but it is giving me errors:
Data want;
attrib newdate format=datetime25.;
set have ;
newdate=input(put(date,date9.)||put(time,time8.),datetime.);run;
Here is the sas error message I receive: “Invalid argument to function INPUT at line 190 column 9.
Any help would be appreciated, thanks
You have a typo in the string, the | should read ||.
data want; attrib newdate format=datetime25.; date="01jan2016"d; time=input("9:10:07",time8.); newdate=input(catx("T",put(date,date9.),put(time,time8.)),datetime.); if datepart(newdate)=date then chk1=1; if timepart(newdate)=time then chk2=1; run;
The above code shows what you want.
You have a typo in the string, the | should read ||.
data want; attrib newdate format=datetime25.; date="01jan2016"d; time=input("9:10:07",time8.); newdate=input(catx("T",put(date,date9.),put(time,time8.)),datetime.); if datepart(newdate)=date then chk1=1; if timepart(newdate)=time then chk2=1; run;
The above code shows what you want.
The easiest way to get a datetime from a date and a time valued variable I believe to be:
datetime = dhms(date, 0,0,time);
hey Ballardw... thanks for this suggestion... very simple and works great!
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.