Using SOQL apex bind variables for date literals (e.g. LAST_N_DAYS, TODAY, THIS_QUARTER)
Wow, that's an interesting one! I doubt it's allowed though (at least without having to use Dynamic SOQL).
You can always do this instead:
Date d = System.today() - 7;
List<Opportunity> opportunities = [SELECT OwnerId, Amount, Probability FROM OPPORTUNITY
where Amount > 0 and LastModifiedDate < :d];
You can use Database.query()
with a string like:
Integer lastDays = 7;
List<OPPORTUNITY> opplist = Database.query('SELECT OwnerId, Amount, Probability FROM OPPORTUNITY where Amount > 0 and LastModifiedDate < LAST_N_DAYS:' + lastDays);
System.debug(opplist);
This is referred to as Dynamic SOQL.