View date tracking would be nice, but I don't think a good implementation would be a trivial undertaking. I do it manually, using a custom multiselect list field. So I can tell you, for example, I viewed
The Matrix on 1999-05-01, 2000-02-12, 2001-03-18, 2002-06-23 and 2007-01-13 (hmmm...it's about time to watch it again!).
My routine is this: When I feel it's time I may want to watch a previously viewed movie, I move it's date
Viewed from the standard field to my custom
Previously Viewed field. This, of course, changes it's status from viewed to not viewed. It now appears in a filtered list of "unseen movies available for viewing," which is the main thing I want. At the same time, I haven't lost the previously viewed date. I can't sort on that field (because I chose to make it a multiselect list), but I can group it—which effectively does the same thing. What I can't do is list the movies seen once together with those seen more than once—by date viewed. So far, I haven't lost any sleep because of that.
As you can see, my routine is very much a result of personal preference. My database includes all movies I've seen for the last 10 years. Generally, I don't want to see a movie again until I've thoroughly forgotten it (
The Matrix was a rare exception). So an important purpose of my database is to provide me a list of movies I may be interested in watching, and keeping a record of what I've seen so I know what
not to watch. I wouldn't expect a view date tracking feature to work the same way. But if it didn't, it wouldn't be of much use to me...
...I'm making this too complicated. The easiest solution would be to log each view date to a separate field as it is set or changed. Then, anyone wanting to do it my way could reset a movie to "not viewed" any time they pleased, knowing the viewed dates are independently recorded in the history field. I do suggest this field be a multiselect list rather than a program-contolled list—so users have the option of recording other information along with the date (e.g., viewed with, location/theatre, etc.), or of correcting an error.