hello after creating a new computed column based on the advice of the earlier discussion
case when ( t1.date <= "start_date_90"d then 1 else 0 end
I get a invalid date/time/datetime constat "start_date_90"d.
when i use the prompt in a filter statement the code reflects no error.
what is happening. am I missing something?
What is start_date_90? A variable or prompt?
If it's a prompt in date time format use it as &start_date_90 - no quotes and no d.
If it's a variable use start_date_90 - no quotes, no d.
Quotes and D are for when you're hard coding a date comparison.
If the prompt has become a macro variable then use & before the name to resolve the name to the value.
&START_DATE_90
If it contains a datetime value in text format ( 21JUL2015:13:02 for example) then you can wrap it in quotes and append DT to let SAS know that you want it treated as a datetime literal.
"&START_DATE_90"DT
If it contains the number of seconds since 01JAN1960 then do not wrap it in quotes as it will be a number.
If you are comparing the value to variables that contain dates then you might need to convert it from datetime to date.
DATEPART("&START_DATE_90"DT)
thanks Tom and Reeza,
apologies... I did use the "&promptvar"dt the datetime variable is a sas datetime. so I was hoping the " " and dt would do the trick.. Is this case sensitive?
Ok I tried all the suggestions. I think that using DT instead of D was the game changer.
"&start_date_90"DT <+ t1.datvar
thanks a lot! it is running !
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.