If at all possible it would be worth doing the join on the Database server by creating a view and allowing the database to take the load.
The method you have suggested is certainly possible, by creating a filter and applying this to the dataset
If NOW() > DATETIME("June 1, 2016 17:01:08") then 'true' else 'false' END
This would create a blank dataset, If you publish this to server and run a full extract refresh after the designated date and time then all records would be returned.
Thanks Alastair for responding and think I am following.
So let's say I create a blank dataset to publish to the server. I will then need to refresh pulling back all data (dating back to 7/1/15). Will the best way to do this is to set a limit to the number of records in the initial extract to publish and then after it is published, refresh the data, pulling back all the data I am looking at bringing in? Or do what you said by creating a blank extract then just change the criteria when doing the refresh on the server?
By creating the filter,
None of your records will ever be returned (until your system clock hits the "June 1, 2016 15:00:00") It is at this point, the filter returns a True, and all the data will be visible. Your essentially publishing an empty extract container.
You obviously must make sure that you give yourself enough time to get the filter applied to the dataset, and published onto the server. I would also advise to check the server time as this is what is going to determine the NOW() time.
The best way to apply the filter to the pause updates or auto updates, apply the dataset filter by selecting the calculated field, In the General Tab check the 'Use All', now on the Wildcard tab, add the word true, (whichever is in the speechmarks of you calc), check the Exactly Matches, and the Include All values when empty selection too.