grep base on specific date

Solution 1:

You're possibly confusing shell globs (where ? matches any single character) with grep regular expressions (where ? is either literal, or a quantifier - while . matches any single character).

Regardless, grep isn't the right tool for this - you can specify a file modification date range to GNU find using -newermt:

find path/to/drive/ -type f -newermt '2007-10-31' ! -newermt '2007-12-01'