Galera, estou com uma dúvida, estou trabalhando em um projeto que tenho que buscar um itervalo de datas.
Exemplo tenho dois campos dataInicio, dataFim e no banco tenho
Eu não entendi o que você realmente quer, com esse where que você colocou ele irá informar todas as linhas que tiverem exatamente a data informada dataInicio = 2017-12-29 and dataFim = 2017-12-30
Mas se você quer um intervalo de datas utilize o between.
Exemplo
Select * FROM Tabela WHERE dataInicio BETWEEN dataInformada1 AND dataInformada2;
Assim apenas terás os que começaram e terminaram dentro do intervalo indicado.
Se queres qualquer pessoa que utilizou no intervalo (começando antes e acabando dentro ou depois ou começando dentro e acabando dentro ou depois) podes fazer:
Select * FROM Tabela WHERE dataInicio <= dataInformada2 AND dataFim >= dataInformada1 ;
Atenção à troca das comparações, com data de inicio a comparar com a segunda data informada e data de fim a comparar com a primeira.