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!
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.