I've been trying to solve a similar problem: creating a membership list per a specific date (based on "membership date" field with start and optional end date elements). Here is my current solution - hope it helps!
1. I use VIEWS, RELATIONS and the PARTIAL DATES module and added a partial dates range field type to the Relation between a person and the organisation. This allows multiple memberships and "fuzzy" start and end dates if exact data is unavailable (i.e. "member since 1995"). You can probably put the date range field directly on your event node, and you may be able to use the standard date field if you don't need to allow for "fuzzy" dates.
Note that the Partial date range field automatically calculates timestamp values for "from" and "to" dates.
In the view, I added 2 exposed filters
- "partial_date_timestamp_to" >= selected date
- "partial_date" <= selected date
I also added 2 non-exposed filters to allow incomplete nodes to be shown (since membership data is not always perfect) you might not need this if your events always have complete, valid start and end dates.
So my filter criteria now reads: (partial_date_timestamp <= selected date OR partial_date_timestamp is empty) AND (partial_date_timestamp_to >= selected date OR partial_date_timestamp_to is empty)
It works, but entering the desired date in timestamp format isn't very user-friendly. Next step is to get desired date from user by a more comfortable method, then convert the result for the view filter.