I have following table with data:
id startdate finishdate
4 2015-09-17 2016-09-28
5 2016-08-17 2016-09-12
select * from customer where startdate >='2016-02-02' or finishdate<='2016-02-02'
Your logic is simply backwards:
select c.* from customer c where startdate <= '2016-02-02' and finishdate >= '2016-02-02';
I advise you not to use
between for dates. Here is a really good explanation by Aaron Bertrand on why that is a bad idea.