Hi all, I am brand new to DS2 and I wonder if you can give any suggestions on comparing dates. The logic is pretty straightforward. I convert the string to the date and then convert to the double for comparing purpose. Everything is fine till I change the hard coded '2018-06-04' with a variable 'date_String'. Then the date conversion step fails. Do I miss anything? Thanks very much! Here is my code:
data _null_;
method run();
dcl date dt1 dt2 dt3;
dcl double ddt1 ddt2 ddt3 we;
dcl varchar(10) date_String;
date_String = '2018-06-04'
Dt1 = date date_String;
Dt2 = date '2018-06-05';
Dt3 = date '2019-01-04';
ddt1 = to_double(dt1);
ddt2 = to_double(dt2);
ddt3 = to_double(dt3);
put ddt1= ddt2= ddt3=;
if ddt1 < ddt3 AND ddt2 < ddt3 then we = 5.3;
put we=;
end;
enddata;
run;
You need to use the to_date() function.
dcl varchar(10) date_String; date_String = '2018-06-04'; Dt1 = to_date(date_String);
I don't understand why you believe you have to convert the Date type to Double for comparison. Using Date should be more than fine.
May be this link will be helpful to you: http://support.sas.com/kb/51/769.html
You need to use the to_date() function.
dcl varchar(10) date_String; date_String = '2018-06-04'; Dt1 = to_date(date_String);
I don't understand why you believe you have to convert the Date type to Double for comparison. Using Date should be more than fine.
May be this link will be helpful to you: http://support.sas.com/kb/51/769.html
Thanks very much, Patrick! As you said, to_data() function is sufficient to compare the dates without any more conversion. It works great!
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.