In the simplest form 'disabling' a row can be just a column which defines if the row is valid or invalid, just like explained in Solution 1.
However, sometimes the moment in time is also interesting. For example think about a bus ticket. When you acquire it, it's valid
until some point in time. In other words there is a date and time when the validity ends. Until that time has passed the ticket is valid.
Another example is the employee. If an employee is inactive, is it interesting when that happened or is it enough just to know that the employee is inactive? If the moment is interesting then you probably should have a date field,
Inactivated
for instance. This field would store the date when the employee was marked as inactive. If this field is empty then the employee is active.
Querying such structure would mean something like:
Query active employees:
SELECT * FROM Employee e WHERE Inactivated IS NULL
Query inactive employees:
SELECT * FROM Employee e WHERE Inactivated IS NOT NULL
Query employees that were inactivated during last 5 days
SELECT * FROM Employee e WHERE Inactivated BETWEEN GETDATE() - 5 AND GETDATE()
If you decide to store the invalidity as a date, the examples mentioned above are just scratching the surface. So you might want to read more about date intervals and date handling in queries.