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
Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.
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.