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;
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 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.