Not exactly sure why you're doing the report this way. If the user is going to select, basically, a period of dates, wouldn't it be much easier to have a data column with a between operator and the user would select 2 dates (lower and upper intervals)?
Anyway, it's possible to achieve what you want to do following your approach. You could use CASE WHENs and have a more complex filter but I think it's better to have a few nested filters where you use the interval operator to determine which date filter you're going to use (see image below)
A couple of notes regarding my filter. First of all, I'm assuming that if the operator is '=' then the number of days specified should be ignored and you're just returning data for the date selected. You'll also notice that in my filters I have a cast to date but if you're using a column that is already a timestamp then this won't be necessary.
This should achieve what you want.
Thank you so much for your answer. I am unable to visualize the exact nested filter that you have written. Request you please give me the screen shot of filter (criteria tab), which will make me to understand clearly.
I am able to write queries with minimal changes to fulfill client requirements. But the base was your answer, i am very thankful for your help.