@RW9 wrote: If its always 21 of last month to 20 of this month, then why not do it programmatically rather than entering it: proc sql;
delete from TASK_CURRENT1
where datepart(TASK_CURRENT1.LAST_UPDATE_DATE) not between mdy(month(today()-1,21,15) and mdy(month(today(),20,15);
quit; (Note, use consistent casing and indentations in code helps readability). The above assumes all the data is in one year of course, you will need to jig it a bit if you have multiple years. What I would say though is you may be better of using datastep for this, might make coding a bit easier if you have multiple years. RW9, That's exactly what I want to do. And yes, the dates are always 21 of last month to 20 of this month. It will only be multiple years in January, where it has to delete dates that are not between 21DEC15 and 20JAN16. I have tried what you suggested, but it errors: 34
35 PROC SQL;
36 DELETE FROM TASK_TEMPO_Current1
37 WHERE DATEPART(TASK_TEMPO_Current1.LAST_UPDATE_DATE) NOT BETWEEN mdy(month(today()-1,21,15) and mdy(month(today(),20,15)
38 ;
_
22
76
ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, ), *, **, +, ',', -, /, <, <=, <>, =, >, >=, ?, AND, BETWEEN,
CONTAINS, EQ, EQT, GE, GET, GT, GTT, IN, IS, LE, LET, LIKE, LT, LTT, NE, NET, NOT, NOTIN, OR, ^, ^=, |, ||, ~, ~=.
2 The SAS System 08:34 Monday, January 11, 2016
ERROR 76-322: Syntax error, statement will be ignored.
NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.
39
40 QUIT;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
real time 0.10 seconds
cpu time 0.00 seconds Thanks.
... View more