hi guys, i'm using this code to create last 3 end of months as a filter in SAS EG (program) %macro last_three_months_end_dates; %let today = %sysfunc(today()); %let end_date1 = %sysfunc(intnx(month, &today, -1, E)); %let end_date2 = %sysfunc(intnx(month, &today, -2, E)); %let end_date3 = %sysfunc(intnx(month, &today, -3, E)); %let end_date1 = %sysfunc(putn(&end_date1, datetime20.)); %let end_date2 = %sysfunc(putn(&end_date2, datetime20.)); %let end_date3 = %sysfunc(putn(&end_date3, datetime20.)); %global date_list; %let date_list = "&end_date1"dt, "&end_date2"dt, "&end_date3"dt; %mend last_three_months_end_dates; %last_three_months_end_dates; and use em in filter like this WHERE t1.TARIH_ID IN (&date_list) But this creates really different date format as i mention below and i cannot solve this issue "WHERE ( ("TARIH_ID" IN (TO_DATE(' 01JAN1960:06:32:37','DDMONYYYY:HH24:MI:SS','NLS_DATE_LANGUAGE=American') ,TO_DATE(' 01JAN1960:06:33:08','DDMONYYYY:HH24:MI:SS','NLS_DATE_LANGUAGE=American') ,TO_DATE(' 01JAN1960:06:33:39','DDMONYYYY:HH24:MI:SS','NLS_DATE_LANGUAGE=American') ) ) )" i'm about to lose my mind
... View more