Hello,
i have a macro variable in numeric. like &jour = 23040,
In CAS i try to find line where dateColumn > &jour bu i have the error :
ERROR: Operator is not unique: DATE > INTEGER
Can someone help me plz.
FedSQL is pretty strictly ANSI compliant. Expressions require date constants to be written in ANSI-standard format - DATE'YYYY-MM-D'. The raw SAS date number must be formatted properly and surrounded by single quotes. You can use PUTN to format the value, but the dashes will be misinterpreted as a minus sign if you use %SYSFUNC to execute the PUTN function, and macro code won't execute if surrounded by single quotes.
Example:
data jours;
input jour;
datalines;
23038
23039
23040
23041
23042
;
%let Aujourdhui=23040;
proc FedSQL;
select *
from jours
where jour>=date%tslit(%qsysfunc(putn(&Aujourdhui,yymmddd10.)));
;
quit;
Hope this helps.
FedSQL is pretty strictly ANSI compliant. Expressions require date constants to be written in ANSI-standard format - DATE'YYYY-MM-D'. The raw SAS date number must be formatted properly and surrounded by single quotes. You can use PUTN to format the value, but the dashes will be misinterpreted as a minus sign if you use %SYSFUNC to execute the PUTN function, and macro code won't execute if surrounded by single quotes.
Example:
data jours;
input jour;
datalines;
23038
23039
23040
23041
23042
;
%let Aujourdhui=23040;
proc FedSQL;
select *
from jours
where jour>=date%tslit(%qsysfunc(putn(&Aujourdhui,yymmddd10.)));
;
quit;
Hope this helps.
Hello. thks you so much. It helps and it works
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 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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: