The short answers is that it really depends on your dataset/table/indexes etc. Try running EXPLAIN withfor each of your querystatements, it will tell you exactly what happens for each of your statementswhat's happening.
EXPLAIN SELECT * FROM myTable WHERE myDate BETWEEN '2012-01-01' AND '2012-01-04'
EXPLAIN SELECT * FROM myTable WHERE myDate BETWEEN '2012-01-01' AND '2012-04-17'