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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.