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;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.