I would just create a view and calculate the Y/N value from the database directly.
SELECT *, (ExpDate < Now()) as IsExpired FROM table
or something similar to that. No reason to update the field if it can be calculated from fields that are already updated.