I only know that WRDS provides S&P Index Constituents (till May 2007 at the moment). I think on Datastream, the default is the most recent index constituents. I don’t know if there’s any way to select the time period. I tried once, by changing the date, but I always get the same list. On ThomsonOneBanker, we can get index constituents for specific month, but the problem is that we can only generate the list for one month at each time.