What function can I use to change:
2014-07-09 11:42:34:826 -->
2014-07-09 11:42:35:000
i.e round the millisecond to the nearest second and put 000 in the millisecond portion. I need to use the rounded value in a join condition.
Hello eagles_dare13,
If your input data is consistently the same length (23 characters) and formatted as your example data, maybe try:
data have;
infile datalines delimiter=',';
format
dt $23.;
input dt;
datalines;
2014-07-09 11:42:34:826
;
run;
data want;
set have;
format
dt2 e8601dt23.3;
substr(dt,20,1)='.';
put dt=;
dt2=input(dt,e8601dt23.3);
dt2=ceil(dt2);
put dt2=;
run;
I think the milliseconds come from the decimal point so try rounding to the nearest digit
round(time, 1)
Hello eagles_dare13,
If your input data is consistently the same length (23 characters) and formatted as your example data, maybe try:
data have;
infile datalines delimiter=',';
format
dt $23.;
input dt;
datalines;
2014-07-09 11:42:34:826
;
run;
data want;
set have;
format
dt2 e8601dt23.3;
substr(dt,20,1)='.';
put dt=;
dt2=input(dt,e8601dt23.3);
dt2=ceil(dt2);
put dt2=;
run;
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 the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.