If you're worried about computing efficiency, I think I'd go with #5.
You can make a prompt in any number of programs (Excel, Access) that will generate a tiny file from which your SQL can pull the necessary data.
You might also be able to create your prompt in "Tableau Viz Alpha", where your SQL brings in ONLY the date (no other data)-- the key benefit here being that your user would choose just the active dates in your DB.
The user would export those Start & End dates (uhg, messy), which would then be picked up in your SQL when you open "Tableau Viz Beta". (or is this a rehash of your #2?)
Since SQL isn't front-end, you won't be able to make your code prompt the user (but you already knew that, eh?). And if you're going to have more users than yourself, I'd avoid #4 at all costs (lest someone messes up the code by accident).
Good luck-- and watch closely what people smarter than myself recommend! --Michael