The problem is that you're using equalTo:
This:
[query whereKey:@"Date2" equalTo:now];
Should be:
[query whereKey:@"Date2" lessThanOrEqualTo:now];
Otherwise, you only get objects that match the date exactly. Since this doesn't happen very often, you're returning no results.